前置:安装了Python及包管理器,请参考https://blog.csdn.net/u010622242/article/details/84979705
1、安装爬取用到的模块selenium、urllib、xlwt
在CMD输入pip install selenium回车;pip install urllib回车;pip install xlwt回车;即可,
pip(包管理器)相关请阅读https://blog.csdn.net/u010622242/article/details/84979705
2、在txt文件中写如下代码,保存为paqu.py,注意代码的缩进,python对代码缩进要求很严格。
#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(0,pagesize):
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: #通过for循环依次把每一本图书的内容取出来
try:
fenshu= book.find_element_by_xpath('.//div[2]/span[2]').text #第二个div下的第二个span
if float(fenshu)>=8.5: #如果是9.5分以上就写入excel
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行的第四列
i=i+1
except: #在取数据时,有可能会存在数据结构不规范的情况,跳过执行下一条就好
j+=1
print('第' + str(num) + '页,已获得' + f + '书籍' + str(i) +'本;') #数字和字符串拼接时,需要先把数字转为字符串
print('数据结构不规范' + str(j))
except Exception as e:
k+=1
print('错误信息:'+e)
workbook.save('douban85.xls') #保存workbook
self.quit() #爬取数据完成后关闭浏览器
#https://www.cnblogs.com/yoyoketang/p/6557421.html find_element用法
#https://blog.csdn.net/u012941152/article/details/83011110 find_element用法
3、下载并使用谷歌浏览器驱动chromedriver
移步https://blog.csdn.net/u010622242/article/details/84979997
4、执行py文件
在cmd命令窗口,进入paqu.py文件所在的目录,然后执行:python 爬取.py