《python3网络爬虫实战分析》第三章重难点总结+猫眼电影爬虫代码

《python3网络爬虫实战分析》第三章重难点总结+猫眼电影爬虫代码_第1张图片
此处seq可以省略不用,因为会报错:
TypeError: ‘seq’ is an invalid keyword argument for print()

《python3网络爬虫实战分析》第三章重难点总结+猫眼电影爬虫代码_第2张图片

cookies.txt文件保存在你正在编程python文件运行的文件夹中

在这里插入图片描述
在这里插入图片描述

在维持知乎登陆方法介绍中,从网页中复制的headers内容,其中Cookie、Host和user-agent 后不能出现空格,不然报错。
但是爬取的页面,却无法维持登陆知乎状态,会出现验证问题。(待解决)
《python3网络爬虫实战分析》第三章重难点总结+猫眼电影爬虫代码_第3张图片

《python3网络爬虫实战分析》第三章重难点总结+猫眼电影爬虫代码_第4张图片
有时候点开爬取内容会加载很慢,导致软件卡顿。可以右键复制,然后新建文本,进行保存观察。

《python3网络爬虫实战分析》第三章重难点总结+猫眼电影爬虫代码_第5张图片

《python3网络爬虫实战分析》第三章重难点总结+猫眼电影爬虫代码_第6张图片

这里可以用其他网站代替,比如‘http://localhost:5000’ = ‘http://sso.toutiao.com/’,然后用户和密码采用手机号和验证码(验证码需要自己点击发送),可得返回值200。

示例抓取猫眼电影排行代码:

import requests
import re
import json
import time
from requests.exceptions import RequestException


def get_one_page(url):
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'}
    response = requests.get(url,headers=headers)
    if response.status_code == 200:
        return response.text
    return None

def parse_one_page(html):
    pattern = re.compile('
.*?board-index.*?>(\d+).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?)

.*?releasetime">(.*?)

' + '.*?integer">(.*?).*?fraction">(.*?).*?
', re.S) items = re.findall(pattern,html) for item in items: yield {'index':item[0], 'image':item[1], 'title':item[2], 'actor':item[3].strip()[3:], 'time':item[4].strip()[5:] , 'score':item[5] + item[6] } def write_to_file(content): with open('result.txt','a',encoding='utf-8') as f: f.write(json.dumps(content,ensure_ascii=False)+'\n') def main(offset): url = 'http://maoyan.com/board/4?offset=' + str(offset) html = get_one_page(url) for item in parse_one_page(html): print(item) write_to_file(item) if __name__ == '__main__': for i in range(10): main(offset=i*10) time.sleep(1)

爬取结果如下

《python3网络爬虫实战分析》第三章重难点总结+猫眼电影爬虫代码_第7张图片

你可能感兴趣的:(《python3网络爬虫实战分析》第三章重难点总结+猫眼电影爬虫代码)