python爬取豆瓣读书,python爬取数据豆瓣读书
xpath爬取腳本:
from urllib import request
from lxml import etree
base_url=“https://tieba.baidu.com/f?kw=nba”
response=request.urlopen(base_url)
html=response.read().decode(‘utf-8’)
htmls=etree.HTML(html)
titles=htmls.xpath(’//div[@class=“threadlist_lz clearfix”]/div/a/@title’)
一開始在父級div沒找到,因此再上一級找爺爺輩div,然后加個/div回到父級
//表示在整個html文檔尋找,@表示尋找類名,再加一個/div表示它的下一級
print(titles)發現輸出的是一個列表
for i in titles:
print(i)
為啥不直接找呢?
因為沒有class標簽,所以不好找,所以找它的父親,看套再哪個class里
//div[@class=“pl2”]/a/@title
//p[@class=“pl”]/text()作者
P標簽下用text找
//span[@class=“rating_nums”]/text()評分
短評
//span[@class=“inq”]/text()
//div[@class=“movie-content”]/a/img/@src
圖片
#爬取豆瓣讀書top250
建立一個文件io對象
fp=open(’./douban.txt’,‘a’,encoding=‘utf-8’)
采集源碼
def index():
for i in range(0,226,25):#制作頁碼
# print(i)
base_url=‘https://book.douban.com/top250?start={0}’.format(i)
# print(base_url)
#抓取源碼階段
response=request.urlopen(base_url)
html=response.read().decode(‘utf-8’)
#處理源碼(用etree將html轉換為xml
htmls=etree.HTML(html)#就可以用xpath語言寫了
clean_sto(htmls)
清洗數據并保存
def clean_sto(htmls):
titles=htmls.xpath(’//div[@class=“pl2”]/a/@title’)
# print(titles)發現是一個一個的列表
for i in titles:
# print(i)
fp.write(i+’\n’)
if name==‘main’:
index()
fp.close()
總結
以上是生活随笔為你收集整理的python爬取豆瓣读书,python爬取数据豆瓣读书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: USB2.0系列(锆石科技FPGA)
- 下一篇: python爬取豆瓣读书_爬取豆瓣读书.