学以致用,我们使用前面的知识,来爬取一下豆瓣上正在上映的电影,由于我们还没有整理存储相关的资料,那么我们就先打印出来,不做存储示例。
1、爬取流程梳理
计划获取内容为:名字、年份、时长、地区、演员、封面等信息。
(1)整体定位
首先我们要知道爬取的哪个页面的哪些内容,如下图:
(2)范围定位
然后我们看下它对应的html
代码是什么,如下图:
那么我们可以先拿取到这块代码,它对应的XPath
路径如下:
//*[@id="nowplaying"]
(3)大致定位
我们拿到这块代码之后,在轮训里面的每个li
标签,因为li
标签里面就是我们实际所需要的内容;
(4)准确定位
数据截取,截取到我们需要的信息,并进行输出
2、代码书写
(1)整体定位
先获取整个页面的html
代码
# 引入模块
import requests
# 设置请求头
Header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'Referer': 'https://movie.douban.com/cinema/later/beijing/'}
Url = 'https://movie.douban.com/cinema/nowplaying/beijing/'
Reqs = requests.get(url=Url, headers=Header)
jier = Reqs.text
print(jier)
输出如下:
这样子我们就已经获取到了整个页面;
(2)范围定位
然后我们获取下正在上映的那块对应的html
代码,那么我们的代码就变成了如下:
# 引入模块
import requests
from lxml import etree
# 设置请求头
Header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'Referer': 'https://movie.douban.com/cinema/later/beijing/'}
Url = 'https://movie.douban.com/cinema/nowplaying/beijing/'
Reqs = requests.get(url=Url, headers=Header)
jier = Reqs.text
# print(jier)
# 获取正在上映的Div下的list
A_Html = etree.HTML(jier)
Div_Html = A_Html.xpath('//*[@id="nowplaying"]//ul[@class="lists"]')[0]
# 将获取的代码进行格式化输出
print(etree.tostring(Div_Html, encoding='utf-8').decode('utf-8'))
我们获取的结果如下:
(3)大致定位
然后我们将刚获取的Div_Html
代码进行二次处理,获取里面所有的li
标签,此时,我们的代码如下:
# 引入模块
import requests
from lxml import etree
# 设置请求头
Header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'Referer': 'https://movie.douban.com/cinema/later/beijing/'}
Url = 'https://movie.douban.com/cinema/nowplaying/beijing/'
Reqs = requests.get(url=Url, headers=Header)
jier = Reqs.text
# print(jier)
# 获取正在上映的Div下的list
A_Html = etree.HTML(jier)
Div_Html = A_Html.xpath('//*[@id="nowplaying"]//ul[@class="lists"]')[0]
# 将获取的代码进行格式化输出
# print(etree.tostring(Div_Html, encoding='utf-8').decode('utf-8'))
#
Li_Html = Div_Html.xpath('./li')
for i in Li_Html:
print(etree.tostring(i, encoding='utf-8').decode('utf-8'))
输出结果如下:
(4)准确定位
截取对应的值,并进行输出,这也就是我们的完整代码了
剩余内容请转至VX公众号 “运维家” ,回复 “172” 查看。
------ “运维家” ,回复 “172” ------
------ “运维家” ,回复 “172” ------
------ “运维家” ,回复 “172” ------
在Linux中的命令,linux实时线程,linux中tail,如何调用linux的epoll,linux无故多出很多进程,linux怎么打开xls文件,linux怎样用命令打开软件,程序员要不要装linux系统,LINUX通用链表实例;
usb无法安装linux,类似安卓linux,在linux中压缩解压命令,512老电脑linux,linux中退出根目录,linux自定义自启的脚本,linux管理员用户名是,新装的linux网卡配置,linux修改u盘权限失败,c语言linux下开发软件。
网友评论