鱼C论坛

 找回密码
 立即注册
查看: 5198|回复: 18

[作品展示] 【没什么暖用的爬虫】爬取秀人网

[复制链接]
发表于 2022-8-10 23:31:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 hello? 于 2022-8-10 23:33 编辑

这种爬取图片的爬虫相信大家见过很多,网上一大片,这个爬虫就是存粹练手的 ,没什么用处,大家看看就行,支持一下新手
第一次自己动手写爬虫程序,没学正则表达式和xpath,用的美丽汤,代码我自己都看着不爽

简单介绍:就纯粹爬取图片的程序,支持翻页。
代码:
  1. import requests
  2. import urllib.request as u
  3. import random
  4. import os
  5. import easygui as g
  6. from bs4 import BeautifulSoup as Be

  7. #代理ip,opener
  8. #选择ip,大家这里可以去网上找其他的来添加或替换
  9. ip=['101.200.127.149:3129','58.20.184.187:9091',\
  10.     '58.20.184.187:9091','183.247.211.156:30001']
  11. ip_=random.choice(ip)
  12. #创建opener
  13. proxy=u.ProxyHandler({'http':ip_})
  14. opener=u.build_opener(proxy)
  15. u.install_opener(opener)
  16. #创建header
  17. cookie="Hm_lvt_1060da23a20238049f3e377d46f7e478=1659877599,1659878742,1659879750,1659881285; wordpress_test_cookie=WP+C\
  18. ookie+check; wordpress_logged_in_5e2cce81a5cb57f53e7a18f30edb5d19=SabcdA%7C1660227358%7COXd1geMvZGlSUSNWmLzSOkWwgHgBn08Q\
  19. HsN6d8GHTJX%7C4ad51d29c9079db9fb51437058bc588ff447ff4feeafab407674fdca82ffbd71; Hm_lpvt_1060da23a20238049f3e377d46f7e478=1660059440"
  20. headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 \
  21. (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"
  22.          ,"cookie":cookie}
  23. url_base='https://www.xiurenwang.cc/bang/'#这个网址是秀人网的主页面,翻页时候要用到
  24. url_true='https://www.xiurenwang.cc/'#这个网址是拼接图集网址时用到的
  25. #开始
  26. hou=[]#储存图集地址要和'https://www.xiurenwang.cc/'进行拼接
  27. url_xo=[]#用于储存图集地址的
  28. photo_url=[]#用于储存每个图集中每个图片的地址
  29. def get_hou():
  30.     #常规操作,定制soup
  31.     response=requests.get(url_base,headers=headers)
  32.     content=response.content.decode('utf-8')#格式uff-8
  33.     soup=Be(content,'lxml')
  34.     #寻找标签
  35.     a_list=soup.find_all("a",class_="img")
  36.     #存放标签内容
  37.     #这个标签内容就是每个图集地址,需要拼接
  38.     for each in a_list:
  39.         hou.append(each['href'])

  40. def save_url_xo():
  41.     #这个函数用于拼接,其实两个函数可以合二为一,我也不知道当时自己为什么要这么做
  42.     for each in hou:
  43.         url_1=url_true+each[1:]
  44.         url_xo.append(url_1)#将每个图集的地址拼接好后存放在url_xo里

  45. def get_xxoo(url_xo_):#url_xo_指的是url_xo里的每个元素(见下面代码中while里的for循环)
  46.     #url_xo存放的是每个图集的地址
  47.    
  48.     #常规操作,soup
  49.     response=requests.get(url_xo_,headers=headers)
  50.     content=response.content.decode('utf-8')
  51.     soup=Be(content,'lxml')
  52.     #这是个重点,要获取子标签,因为子标签名字是a,然而网页源代码里名字为a的有很多
  53.     #需要获取的就是这个标签下的a标签
  54.     d_list=soup.find("div",id="image").children
  55.     #下面3句是为了去掉列表开头没用的元素
  56.     t_list=list(d_list)
  57.     end=len(t_list)
  58.     t_list=t_list[1:end-1]

  59.     for each in t_list:
  60.         href=each['href']
  61.         photo_url.append(href)
  62.     #这个for循环是将t_list里标签的href属性值提取出来并存入photo_url
  63.     #这个属性值就是每张图片的地址
  64.     len_ph=len(photo_url)
  65.     down_index=1
  66.     #这两句就是为后面print进度做的
  67.     name=0 #这个是为了取图片名字用的,还有i也是,i就是下面代码while里的for循环里的
  68.     for each in photo_url:
  69.         xxoo=requests.get(each).content
  70.         #这里也很关键,由于每张图片地址里面都有中文,所以用.comtent需要转换格式
  71.         name_jpg=file+'\\'+str(i)+'.'+str(name)+'.jpg'
  72.         with open(name_jpg,'wb')as f:
  73.             f.write(xxoo)
  74.             print(f"{name_jpg}已下载,进度:{down_index}/{len_ph}")
  75.         name+=1
  76.         down_index+=1
  77.         #这里的两个变量其实重复了,多此亿举,写注释才发现



  78. #下面的没什么好说的
  79. #就是url_base和url_true两个网址的区别,你去看了秀人网就知道了【手动狗头】
  80. while True:
  81.     page=1
  82.     inp=input(f"是否下载第{page}页图片?(Y/N):")
  83.     if page!=1:
  84.         url_base='https://www.xiurenwang.cc/bang/'+'page/'+str(page)

  85.     if inp=="Y":
  86.         file=g.filesavebox(msg="选择文件夹",title="另存为")
  87.         os.mkdir(file)
  88.         get_hou()
  89.         save_url_xo()
  90.         for i in range(len(url_xo)):
  91.             photo_url=[]
  92.             get_xxoo(url_xo[i])
  93.     else:
  94.         break
  95.     page+=1
  96.         
  97.             
  98.         
复制代码


欢迎大佬萌提建议
顺便谢谢大佬萌一直以来对我的帮助



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-11 09:17:10 | 显示全部楼层

回帖奖励 +5 鱼币

大佬练手的网站真不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 10:39:48 | 显示全部楼层

回帖奖励 +5 鱼币

注释写的很详细哦,加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 13:04:38 | 显示全部楼层

回帖奖励 +5 鱼币

支持支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 14:46:19 | 显示全部楼层

回帖奖励 +5 鱼币

超级厉害啊,你python已经很强啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 14:55:43 | 显示全部楼层

回帖奖励 +5 鱼币

厉害~ 顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 15:06:42 | 显示全部楼层

回帖奖励 +5 鱼币

大佬写的很详细哦,谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 15:28:33 | 显示全部楼层
theS 发表于 2022-8-11 09:17
大佬练手的网站真不错

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 15:29:03 | 显示全部楼层
Py与C。。。 发表于 2022-8-11 10:39
注释写的很详细哦,加油

一起加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 15:29:34 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 15:32:19 | 显示全部楼层
cancry 发表于 2022-8-11 14:46
超级厉害啊,你python已经很强啦

谢谢夸奖,一起加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-11 15:33:49 | 显示全部楼层
鬼M^I心窍 发表于 2022-8-11 15:06
大佬写的很详细哦,谢谢你

不谢,有建议可以提,看不太懂的问就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-11 15:50:06 | 显示全部楼层
看视频看着看着又睡着了

其实初衷我是想混个鱼币的,毕竟五个不是个小数目
但一看今天我凑够十个了,不用了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-12 11:47:50 | 显示全部楼层

回帖奖励 +5 鱼币

感谢分享1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-12 14:24:12 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-12 19:53:21 | 显示全部楼层

回帖奖励 +5 鱼币

感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-13 00:47:53 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-4 09:55:29 | 显示全部楼层
很强
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-26 14:06:39 | 显示全部楼层
大佬 我这里试着用你这个跑他报错,这个是咋回事啊
Traceback (most recent call last):
  File "C:/Users/炸炸/AppData/Local/Programs/Python/Python310/xiuren.py", line 5, in <module>
    import easygui as g
ModuleNotFoundError: No module named 'easygui'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 01:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表