这篇文章主要讲解了“怎么用Python网络爬虫来看看最近电影院都有哪些上映的电影”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python网络爬虫来看看最近电影院都有哪些上映的电影”吧!
项目实现
1、定义一个class类继承object,定义init方法继承self,主函数main继承self。导入需要的库和网址,代码如下所示。
import requests from lxml import etree import time import random class MaoyanSpider(object): def __init__(self): self.url = "https://maoyan.com/films?showType=2&offset={}" def main(self): pass if __name__ == '__main__': spider = MaoyanSpider() spider.main()
2、随机产生UserAgent。
for i in range(1, 50): # ua.random,一定要写在这里,每次请求都会随机选择。 self.headers = { 'User-Agent': ua.random, }
3、发送请求,获取页面响应。
def get_page(self, url): # random.choice一定要写在这里,每次请求都会随机选择 res = requests.get(url, headers=self.headers) res.encoding = 'utf-8' html = res.text self.parse_page(html)
4、xpath解析一级页面数据,获取页面信息。
1)基准xpath节点对象列表。
# 创建解析对象 parse_html = etree.HTML(html) # 基准xpath节点对象列表 dd_list = parse_html.xpath('//dl[@class="movie-list"]//dd')
2)依次遍历每个节点对象,提取数据。
for dd in dd_list: name = dd.xpath('.//div[@class="movie-hover-title"]//span[@class="name noscore"]/text()')[0].strip() star = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][3]/text()')[1].strip() type = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][2]/text()')[1].strip() dowld=dd.xpath('.//div[@class="movie-item-hover"]/a/@href')[0].strip() # print(movie_dict) movie = '''【即将上映】
5、定义movie,保存打印数据。
movie = '''【即将上映】 电影名字: %s 主演:%s 类型:%s 详情链接:https://maoyan.com%s ========================================================= ''' % (name, star, type,dowld) print( movie)
6、random.randint()方法,设置时间延时。
time.sleep(random.randint(1, 3))
7、调用方法,实现功能。
html = self.get_page(url) self.parse_page(html)
效果展示
1、点击绿色小三角运行输入起始页,终止页。
2、运行程序后,结果显示在控制台,如下图所示。
3、点击蓝色下载链接, 网络查看详情。
感谢各位的阅读,以上就是“怎么用Python网络爬虫来看看最近电影院都有哪些上映的电影”的内容了,经过本文的学习后,相信大家对怎么用Python网络爬虫来看看最近电影院都有哪些上映的电影这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。