豆瓣读书笔记
导包requests,selenium
def main():
1路由
2请求头
3for循环分页
4返回响应
5测试打印响应.text
6创建一个dirver
driver=webdriver.PhantomJS()
7请求头
8等待
time.sleep(2) 速度太快需要休眠
9获取页面源代码 html_str=driver.page_sounce
10返回页面return
11返回响应4注释掉旧方法换成
html_str=get_xpath_selenium(路由 %s,头=头)
12测试打印页面
13导包 from lxm l import etree
tree=etree.HTML(html_str)
F12点进去的名字
14获取名字列表页html_str=tree.xpath(路径)
15测试打印
16 for div in 获取列表页 一个一个拉出来遍历
17 书名
name=div.xpath(路径)
18测试打印书名 出现很多空
def get_text(text):
if text:
return text[0]
return ‘’ 特意封装方法不为空返回空
19评分
路径
20切分
infos=info.split(’/)
if infos[0]!=’’:如果不为空
作者
author=infos[0]
出版社
publish=info[-3]
出版日期
date=infos[-2]
价格
price=infos[-1]
详情页链接
打印作者及出版社等
接下来处理逻辑都在if中
详情页链接就是书名的路径 书名路径是个a标签
detail_url=get_text(div.xpath(路径))
测试打印详情页链接
item={}
item[‘name’]=name
item[‘字段名’]=字段名
测试打印item
将infos添加至item
books.append(item)
再写个写入方法
def write_to_excel(infos):
创建一个work
work_book=xlwt.Workbook(encoding=‘utf-8’)
创建一个表单
sheet=work_book.add_sheet(‘表单名称’)
设置表头
head=[]
for i in infos[0].keys():
head.append(i)
写表头
for i in range(len(head)):
sheet.write(0,i,head[i]) 第一个参数行数0,列数i,内容[i]
写内容
i=1
for item in infos:
for j in range(len(head)):列
sheet.write(i,j,item[head[j]])
i+=1
保存
work_book.save('传入的名字')
传入名字
打印写入成功 提示
在写入函数中传入参数名字
if name==‘main’:
写入方法
导包 import xlwt
books=[]
main()
write_to_excel(books,‘传入名字’)