Python之requests+xpath爬取猫眼电影并写入数据库(图文教程)
2020-06-28 11:38:30 来源:易采站长站 作者:易采站长站整理
先看海报地址

这里用了一个抓xpath的插件工具(XPath Helper),没有的同学可以去谷歌应用商店下载,安装之后按快捷键Ctrl+Shift+X就可以快速使用了

ok,现在电影首页的内容需要的两个内容已经抓取完毕,剩下的内容需要到详情页来抓取,我们先写一段首页抓取的代码来看看效果
#coding=utf-8
import requests
from lxml import etree
from fake_useragent import UserAgent# 这里用了一个可以随机模拟请求头的库,因为一天内爬太多次导致频繁要验证,用随意模拟的请求头会好很多
# 感兴趣的小伙伴可以自己'pip install fake_useragent', 不感兴趣可以直接用普通的请求头
headers = {
"User-Agent": UserAgent().random
}
url = 'https://maoyan.com/films?showType=3'
print("url: " + url)
resp = requests.get(url=url, headers=headers)
tree = etree.HTML(resp.text)
# 完整的图片地址,可以直接打开
img_ar = tree.xpath('//dl/dd//img[2]/@src')
# 只有地址的后半段,需要拼接'https://maoyan.com/'
urls_ar = tree.xpath('//dd/div[@class="movie-item film-channel"]/a/@href')
#打印出来看看数据爬到没有
print(img_ar)
print(urls_ar)

发现详情页地址抓到了,图片地址没抓到???真是原地裂开,到这里我也懵逼了一阵,以为是自己xpath没写对,那看来现在只能debug了,咱先打个断点
那现在我们将抓取图片的xpath改为’//dl/dd//img[2]/@data-src’再来试试,发现已经能成功抓取
现在我们来抓取详情界面信息的演员表
其中电影名字和简介都比较好抓,我就不截图了,一会一直贴xpath,你可以自己抓一抓
这里你可以尝试下其他写法,就不多重复了
爬取详情页的代码
headers = {
"User-Agent": UserAgent().random
}
url = 'https://maoyan.com/films/1218029'print("url: " + url)
resp = requests.get(url=url, headers=headers)
tree = etree.HTML(resp.content.decode("utf-8"))
name = str(tree.xpath('string(//h1)')) #转为py内置的str类型,保险点













闽公网安备 35020302000061号