长城》豆瓣影评"/>
使用python爬取《长城》豆瓣影评
声明:这里参考了这篇博客的代码
爬取豆瓣影评时,不能使用最简单粗暴的爬虫策略,因为豆瓣服务器
是有反爬虫机制的。简单的粗暴的方式只能爬取四页就会被禁掉。所以这里必须要使用表头,伪装成使用浏览器进行访问。而且需要使用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 randomfilename = '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
更多推荐
使用python爬取《长城》豆瓣影评
发布评论