资源简介

爬取指定标签List下评分8.5分以上的图书信息,包括书名、作者、评分、简介,并保存到excel,以标签分类,放到不同的sheet中。核心代码: title= book.find_element_by_xpath('.//a[1]').text #获取书名 zuozhe= book.find_element_by_xpath('.//div[1]').text.split('/',1)[0] jianjie= book.find_element_by_xpath('.//p[1]').text #获取简介 worksheet.write(i,0,fenshu); #分数写入第i行的第一列 worksheet.write(i,1,title); #书名写入第i行的第二列 worksheet.write(i,2,zuozhe); #作者写入第i行的第三列 worksheet.write(i,3,jianjie); #简介写入第i行的第四列

资源截图

代码片段和文件信息

#coding:utf-8
from selenium import webdriver #自动化测试模块
from urllib import parse #url过滤特殊字符
import xlwt #excel写入用

self = webdriver.Chrome()  #指定selenium进行自动化操作时选用谷歌浏览器
workbook = xlwt.Workbook(encoding = ‘ascii‘) #创建workbook
k=0;
fenlei=[ 
‘职场‘‘互联网‘‘用户体验‘ 
]
try:
for f in fenlei:
print(f)
worksheet = workbook.add_sheet(f) #每各标签创建一个sheet,sheet名为标签名
i=0;#记录每个标签爬取到了多少符合条件的数据
j=0;#记录每个标签有多少数据结构不规范的数据
self.get(‘https://book.douban.com/tag/‘+parse.quote(f)+‘?start=0&type=T‘)  #打开指定标签第一页的网页
pagesize = int(self.find_elements_by_class_name(‘paginator‘)[0].find_element_by_xpath(‘.//a[last()]‘).text) #获取该标签下有多少页数据
if pagesize>50: #不知道为什么,每个标签下,只能浏览前50页
pagesize=50
for num in range(0pagesize):
self.get(‘https://book.douban.com/tag/‘+parse.quote(f)+‘?start=‘+str(num*20)+‘&type=T‘) #打开指定标签、指定页数的网页
total_book = self.find_element_by_id(‘subject_list‘) #获得当页图书列表所在容器
books = total_book.find_elements_by_class_name(‘info‘)   #获得当页所有包含单个图书信息的容器,返回一个数组
for book in books

评论

共有 条评论