豆瓣电影爬虫需要加上UserAgent的Headers

问题

豆瓣网站进行了升级,如果爬取的时候不加UserAgent的Headers,会返回爬取错误的装填。

解决方法

加上Headers的User agent

def download_all_htmls():
    """
    下载所有列表页面的HTML,用于后续的分析
    """
    htmls = []
    for idx in page_indexs:
        url = f"https://movie.douban.com/top250?start={idx}&filter="
        print("craw html:", url)
        r = requests.get(url,
                        headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"})
        if r.status_code != 200:
            raise Exception("error")
        htmls.append(r.text)
    return htmls

解释

requests.get方法,可以加一个headers参数,等于一个这样的字典:

headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"
}

加上后即可解决。

Leave a Comment