Python爬虫抓取猫眼电影排行榜
<div class="movie-item-info">
<p class="name"><a href="/films/1200486" title="我不是药" data-act="boarditem-click" data-val="{movieId:1200486}">我不是药</a></p>
<p class="star">
主演:徐峥,周一围,王传君
</p>
<p class="releasetime">上映时间:2018-07-05</p> </div>
确定url规律
想要确定 url 规律,需要您多浏览几个页面,然后才可以总结出 url 规律,如下所示:
页:https://maoya网站站点" rel="nofollow" />
<div class="movie-item-info">
<p class="name"><a href="/films/1200486" title="我不是药" data-act="boarditem-click" data-val="{movieId:1200486}">我不是药</a></p>
<p class="star">
主演:徐峥,周一围,王传君
</p>
<p class="releasetime">上映时间:2018-07-05</p></div>
使用 Chrome 开发者调试工具来定位要抓取信息的元素结构。之所以这样做,是因为这能避免正则表达式的冗余,提高编写正则表达式的速度。正则表达式如下所示:
编写正则表达式时将需要提取的信息使用<div class="movie-item-info">.*?title="(.*?)".*?class="star">(.*?)</p>.*?releasetime">(.*?)</p>
(.*?)
代替,而不需要的内容(包括元素标签)使用.*?
代替。编写爬虫程序
下面使用面向对象的方法编写爬虫程序,主要编写四个函数,分别是请求函数、解析函数、保存数据函数、主函数。from urllib import request
import re
import time
import random
import csv
from ua_info import ua_list
# 定义一个爬虫类
class MaoyanSpider(object):
# 初始化
# 定义初始页面url
def __init__(self):
self.url = 'https://maoya网站站点" rel="nofollow" />
我不是药 2018-07-05 徐峥,周一围,王传君
肖申克的救赎 1994-09-10 蒂姆·罗宾斯,摩根·弗里曼,鲍勃·冈顿
绿皮书 2019-03-01 维果·莫腾森,马赫沙拉·阿里,琳达·卡德里尼
海上钢琴师 2019-11-15 蒂姆·罗斯,比尔·努恩,克兰伦斯·威廉姆斯三世
小偷家族 2018-08-03 中川雅也,安藤樱,松冈茉优
霸王别姬 1993-07-26 张国荣,张丰毅,巩俐
哪吒之魔童降世 2019-07-26 吕艳婷,囧森瑟夫,瀚墨
美丽人生 2020-01-03 罗伯托·贝尼尼,朱斯蒂诺·杜拉诺,赛尔乔·比尼·布斯特里克
这个不太冷 1994-09-14 让·雷诺,加里·奥德曼,娜塔莉·波特曼盗梦空间 2010-09-01 莱昂纳多·迪卡普里奥,渡边谦,约瑟夫·高登-莱维特