鱼C论坛

 找回密码
 立即注册
查看: 2264|回复: 2

[技术交流] 百度贴吧爬取网页内的图片

[复制链接]
发表于 2020-2-14 17:02:41 | 显示全部楼层 |阅读模式

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

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

x
学习了python将近一年了,最近有空得以学学爬虫,还是挺好玩的,用鱼C论坛也挺久了经常看一些大佬操作,作为菜鸟的我第一次发这个帖子,希望大家多多支持啦
  1. import requests,re,numpy,pandas,time,random
  2. class Baidupic:
  3.     def __init__(self):
  4.         a = input('请输入要爬取的贴吧名')
  5.         n = 0
  6.         self.o = 1
  7.         self.h = 1
  8.         for i in range(2):
  9.             tw = i+1
  10.             print('正在爬取'+str(tw)+'页')
  11.             url = 'https://tieba.baidu.com/f?ie=utf-8&kw='+a+'&ie=utf-8&pn='+str(n)
  12.             self.headers = [{'User-Agent' :'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.16 Safari/537.36'},
  13.                             {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360EE'},
  14.                             {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'},
  15.                             {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0'},
  16.                             {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'},
  17.                             {'User-Agent':'Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50'},
  18.                             {'User-Agent':'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3'}]
  19.             html = requests.get(url = url ,headers = random.choice(self.headers))
  20.             self.html = html.text
  21.             self.data()
  22.             n += 50
  23.     def data(self):
  24.         # t = re.findall(r'original="(.*?)"',self.html)
  25.         t1 = re.findall(r"data-tid='(.*?)'",self.html)
  26.         # t2 = re.findall(r'title: "(.*?)"',self.html)
  27.         # print(t1)
  28.         if (len(t1) > 0):
  29.             try:
  30.                 for i in t1:
  31.                     url = 'https://tieba.baidu.com/p/'+str(i)
  32.                     html = requests.get(url = url ,headers = random.choice(self.headers))
  33.                     data = html.text
  34.                     s = re.findall(r'src="(.*?.jpg)" size="',data)
  35.                     if (len(s)>0):
  36.                         for n in s:
  37.                             #print(n)
  38.                             with open('E:\\Administrator\\pic\\' + str(self.h) + '.jpg','wb') as f:
  39.                                 try:
  40.                                     tt = requests.get(url = n,headers = random.choice(self.headers))
  41.                                     f.write(tt.content)
  42.                                     print(self.h)
  43.                                     self.h += 1
  44.                                 except Exception:
  45.                                     break

  46.                     else:
  47.                         print('这个帖子里没有图片')

  48.             except Exception:
  49.                 return
  50.         time.sleep(3)






  51. if __name__ == '__main__':
  52.     app = Baidupic()
复制代码

评分

参与人数 1荣誉 +1 鱼币 +2 收起 理由
qiuyouzhi + 1 + 2 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-14 19:58:41 | 显示全部楼层
自己顶顶
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 10:25:28 | 显示全部楼层
来顶下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-14 17:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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