豆瓣评论第一页爬取

import requests
# 先进行第一次安装
from lxml import etree
import pandas as pd
url="https://book.douban.com/subject/1084336/comments/"
r=requests.get(url).text
s=etree.HTML(r)
# 获取文本内容用text(),观察下面获取的第一个、第二个文本内容时的xpath后面寻找数据的参数的变化(浏览器复制方法)
# print(s.xpath('//*[@id="comments"]/ul/li[1]/div[2]/p/span/text()'))
# print(s.xpath('//*[@id="comments"]/ul/li[2]/div[2]/p/span/text()'))
#print(s.xpath('//*[@id="comments"]/ul/li/div[2]/p/span/text()'))
file=s.xpath('//*[@id="comments"]/ul/li/div[2]/p/span/text()')
df=pd.DataFrame(file)
# df.to_csv('pinglun.xlsx')
df.to_excel('pinglun2.xlsx')
# 这里运行结果显示ModuleNotFoundError: No module named 'openpyxl',所以需要安装这个库,这个库是保存excel文件的依赖库,最好使用
# csv形式,但比较写入的结果而言,to_excel的结果更为规范

# 尝试手写
print(s.xpath('//div[@class="comment"]/p/span/text()')[0])
print("\n".join(s.xpath('//div[@class="comment"]/p/span/text()')))
# 也可以通过其他方式获取文本内容
# 获取第一个
print(s.xpath('//*[@id="comments"]/ul/li[position()=1]/div[2]/p/span/text()'))
# 获取最后一个p
print(s.xpath('//*[@id="comments"]/ul/li[last()]/div[2]/p/span/text()'))

xpath是一个非常好用的方法,可以灵活多样的寻找我们需要的数据。

接下来就要进行思考如何爬取多页的数据。当然,要遵守robots.txt协议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值