本文来源吾爱破解论坛
本帖最后由 evanqqqq 于 2019-3-26 18:58 编辑
因为楼主比较喜欢看贴吧, 经常发现好玩的图片, 就用python写了一个爬虫来爬取图片. 可以自定义贴吧名和爬取的页数. 希望大佬们给些指点:$qqq
不同的贴吧需要的解析式可能会不同, 代码里30行和31行的解析式不确定, 如果30行的解析式不行, 改成31行的就可以了. ----------------wkj1688在吗
[Python] 纯文本查看 复制代码
import requests from lxml import etree import time class Baiduspider(object): def __init__(self): self.baseurl = 'https://tieba.baidu.com/' self.url = 'https://tieba.baidu.com/f?' self.headers = {'User-Agent':'Mozilla/5.0'} #获取帖子链接 def getPageUrl(self,url): res = requests.get(url,headers=self.headers) res.encoding= 'utf-8' html = res.text parseHtml = etree.HTML(html) # 2. 解析对象调用xpath r1 = parseHtml.xpath('//div[@class="t_con cleafix"]/div/div/div/a/@href') for t in r1: self.getImaUrl(t) #获取帖子中图片的连接 def getImaUrl(self,t): res = requests.get(self.baseurl+t,headers=self.headers) res.encoding= 'utf-8' html = res.text parseHtml = etree.HTML(html) # 2. 解析对象调用xpath. 两个解析式不确定, 第一个不能用就换第二个 r2 = parseHtml.xpath('//div[@class="d_post_content j_d_post_content clearfix"]/img[@class="BDE_Image"]/@src') #r2 = parseHtml.xpath('//div[@class="d_post_content j_d_post_content "]/img[@class="BDE_Image"]/@src') for i in r2: self.saveImage(i) #保存图片到本地 def saveImage(self,i): print(i) res = requests.get(i,headers=self.headers) html = res.content # 这里自定义图片保存路径, 我是在d盘创建了一个image文件夹用来保存, 图片名就用time.time来定义了 with open('D:\image\%s.jpg'% time.time(),'wb') as f: f.write(html) def workOn(self): key = input('请输入要爬取的贴吧名:') pn = int(input('请输入要爬取的页数:')) for x in range(1,pn+1): url = self.url + 'kw=' + key +'&pn=' + str((x-1)*50) print('================') print(url) self.getPageUrl(url) if __name__=='__main__': spider = Baiduspider() spider.workOn()
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 转帖-程序人生--Python爬虫爬取智联招聘(进阶版)
- 下一篇: 浙江移动查生日多线程批量导出