python爬取百度贴吧xpath_爬虫基础系列xpath实战——爬取百度贴吧图片(3)
8586231_192932724000_2.jpg
#百度貼吧圖片爬蟲
# 爬取步驟:1.基礎設置,2.構造url,3.爬取頁面,4.解析頁面,5.保存頁面
# 采取urllib爬取
#引入必要的包
import urllib
import urllib.request
from lxml import etree
#定義一個類存入必要的基礎數據
class Spider():
def __init__(self):
self.beginpage=1
self.endpage=3
self.tiebaname='java'
self.url="http://tieba.baidu.com/f?"
self.headers={"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1 Trident/5.0;"}
self.filename=1
#定義構造url的函數
def tiebaSpider(self):#駝峰命名法
for i in range(self.beginpage,self.endpage+1):
#分析網頁
#第二頁http://tieba.baidu.com/f?kw=java&ie=utf-8&pn=50
#第三頁http://tieba.baidu.com/f?kw=java&ie=utf-8&pn=100
#構造get請求參數
pn=(i-1)*50
wd={'pn':pn , 'kw':self.tiebaname}
word=urllib.parse.urlencode(wd)
#拼接完整的url
urll=self.url+word
#調用爬取頁面函數
self.loadPage(urll)
#定義爬取頁面url
def loadPage(self,url):
response=urllib.request.Request(url,headers=self.headers)
data=urllib.request.urlopen(response).read()#返回2進制形式的頁面信息
# print(data)
#用xpath前期處理出鏈接信息拼接帖子的地址
html=etree.HTML(data)
#
#
# 剛來公司跟不上啊,怎么辦呢,又沒有大佬分享一下經驗
links=html.xpath('//div[@class="threadlist_lz clearfix"]/div/a/@href')
for link in links:
# print(link)
#拼接url
link="http://tieba.baidu.com"+link
# 調用解析頁面函數
self.loadImage(link)
#定義圖片解析鏈接的函數
def loadImage(self,link):
req=urllib.request.Request(link,headers=self.headers)
data1=urllib.request.urlopen(req).read()
html=etree.HTML(data1)
#用xpath表達式解析出圖片
#其中一個圖片的網頁信息
#
imagelinks=html.xpath('//img[@class="BDE_Image"]/@src')
for imagelink in imagelinks:
#調用保存圖片函數,將解析出的圖片存入本地
self.writeImage(imagelink)
def writeImage(self,imagelink):
print("正在保存圖片",self.filename,"-------------------")
image=urllib.request.urlopen(imagelink).read()
with open(r"E:\img\\"+str(self.filename)+".jpg","wb") as f:
f.write(image)
self.filename+=1
#最后調用執行整個代碼
if __name__=='__main__':
spider=Spider()
spider.tiebaSpider()
......
正在保存圖片 137 -------------------
正在保存圖片 138 -------------------
正在保存圖片 139 -------------------
正在保存圖片 140 -------------------
正在保存圖片 141 -------------------
正在保存圖片 142 -------------------
正在保存圖片 143 -------------------
......
總結
以上是生活随笔為你收集整理的python爬取百度贴吧xpath_爬虫基础系列xpath实战——爬取百度贴吧图片(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python js 效率_巧用 db.s
- 下一篇: python 类继承和组合_python