lxping 发表于 2022-12-5 21:43:44

爬取猫眼电影排行榜

本帖最后由 lxping 于 2022-12-5 22:00 编辑

目标:提取出猫眼电影 TOP100 的电影名称、时间、评分、图片等信息,提取的站点 URL 为 http://maoyan.com/board/4,提取的结果会以文件形式保存下来。
代码:
import requests
import re
import time

headers = {"Cookie": "uuid_n_v=v1; uuid=D8B77A70746711EDA0C51946765EC4552083D916483C4B5A82694B66C9E41F85; _csrf=f7d32718ed80b627e8dffbdc72399a1784eb184b99a448a074b8288e17d50994; Hm_lvt_703e94591e87be68cc8da0da7cbd0be2=1670222489; _lxsdk_cuid=184e104c9cfc8-073c8f0e135039-26021e51-1fa400-184e104c9cfc8; _lxsdk=D8B77A70746711EDA0C51946765EC4552083D916483C4B5A82694B66C9E41F85; __mta=140950029.1670241486173.1670241486173.1670241488706.2; Hm_lpvt_703e94591e87be68cc8da0da7cbd0be2=1670242110; _lxsdk_s=184e226616f-6a1-d10-a91%7C%7C9","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"}
p = re.compile(r'<img data-src="(.+?)" alt="(.+?)" class.+?"releasetime">(.+?)<.+?"integer">(\d[.])<.+?"fraction">(\d)<', re.S)
proxies = {"http": "http://111.225.153.42:8089"}

def gettm(url):
    resp = requests.get(url, headers=headers, proxies=proxies)
    filmlist = p.findall(resp.text)
    with open("topfilm.txt", "a") as f:
      for each in filmlist:
            filmname = each
            filmimg = each
            filmtime = each
            filmsocre = each + each
            film = " ".join()
            f.writelines(film)
   
for i in range(0, 91, 10):
    url = "https://www.maoyan.com/board/4?offset=" + str(i)
    gettm(url)
    time.sleep(2.0)
效果:
[('https://p0.pipi.cn/mmdb/d2dad59253751bd236338fa5bd5a27c710413.jpg?imageView2/1/w/160/h/220', '我不是药神', '上映时间:2018-07-05', '9.', '6'), ('https://p0.pipi.cn/mmdb/d2dad592c7e7e1d236f2aa1811a8a64794b33.jpg?imageView2/1/w/160/h/220', '肖申克的救赎', '上映时间:1994-09-10(加拿大)', '9.', '5'), ('https://p0.pipi.cn/mmdb/d2dad592c7e7e1d2365bf1b63cd25951b722b.jpg?imageView2/1/w/160/h/220', '海上钢琴师', '上映时间:2019-11-15', '9.', '3'), ('https://p0.pipi.cn/mmdb/d2dad59253751b230f21f0818a5bfd4d8679c.jpg?imageView2/1/w/160/h/220', '绿皮书', '上映时间:2019-03-01', '9.', '5'), ('https://p0.pipi.cn/mmdb/d2dad592c7e7e1d236d7c3c9b6a0b65c4d19d.jpg?imageView2/1/w/160/h/220', '霸王别姬', '上映时间:1993-07-26', '9.', '4'), ('https://p0.pipi.cn/mmdb/d2dad592c7e7e1d2367a3507befaed31a5903.jpg?imageView2/1/w/160/h/220', '美丽人生', '上映时间:2020-01-03', '9.', '3'), ('https://p0.pipi.cn/mmdb/d2dad5925372ffd7c387a9d01bddad81625c3.jpg?imageView2/1/w/160/h/220', '小偷家族', '上映时间:2018-08-03', '8.', '1'), ('https://p0.pipi.cn/mmdb/d2dad592537923f0ee07acada3ac59b9f3ffb.jpg?imageView2/1/w/160/h/220', '哪吒之魔童降世', '上映时间:2019-07-26', '9.', '6'), ('https://p0.pipi.cn/mmdb/d2dad592c7e7e13ba3ddd25677b4d70fc45fa.jpg?imageView2/1/w/160/h/220', '这个杀手不太冷', '上映时间:1994-09-14(法国)', '9.', '4'), ('https://p0.pipi.cn/mmdb/d2dad592b122ff8d3387a93ccab6036f616c1.jpg?imageView2/1/w/160/h/220', '怦然心动', '上映时间:2010-07-26(美国)', '8.', '9')]
注意点:不要在 Elements 选项卡中直接查看源码,因为那里的源码可能经过 JavaScript 操作而与原始请求不同,而是需要从 Network 选项卡部分查看原始请求得到的源码。
问题:不太稳定,有时候抓取不到内容,得多运行几次,估计是网站的反爬措施引起的。
页: [1]
查看完整版本: 爬取猫眼电影排行榜