使用python爬取《长城》豆瓣影评

本文介绍了如何使用Python爬取《长城》在豆瓣上的影评,由于豆瓣服务器存在反爬机制,因此需要设置表头和使用cookie以模拟浏览器访问。通过尝试,发现urllib包在加入表头和cookie后仍然受限,只能爬取少量评论。后来改用requests包成功解决了问题,能抓取更多评论数据。后续将分享完整抓取所有评论的代码。
摘要由CSDN通过智能技术生成

声明:这里参考了这篇博客的代码

爬取豆瓣影评时,不能使用最简单粗暴的爬虫策略,因为豆瓣服务器
是有反爬虫机制的。简单的粗暴的方式只能爬取四页就会被禁掉。所以这里必须要使用表头,伪装成使用浏览器进行访问。而且需要使用cookie信息。

刚开始使用urllib包来爬取,后来发现困难重重,尽管加了表头跟cookie,但是最多还是只能爬到几百条评论就被禁掉。不知道是因为
表头信息不够还是加的cookie有问题。总之使用这种方法不能爬取全部的
评论信息。给出代码如下,如有大神知道原因,望不吝赐教

#需要爬取的信息:['user_id','rating','comment_time','comment_vote','comment']
from bs4 import BeautifulSoup
import re
import urllib.request
from urllib.error import URLError
import xlwt
import mysql.connector
import time
import urllib.parse
import http.cookiejar
#添加表头信息
my_headers=["Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0"
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14"
]
#发送请求
def askURL(url):
    import random
    filename = 'cookie.txt'
    #randdom_header="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
    randdom_header=random.choice(my_headers)
    cookie = http.cookiejar.MozillaCookieJar(filename)
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
    postd
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值