[Scrawler] 解决雪球爬虫返回403

正常情况下使用urllib2.urlopen 会返回urllib2.HTTPError: HTTP Error 400: Bad Request 错误,需要的cookie 行信息,如果手动填写的话会有过期的问题。
现在终于找到解决办法,用cooklib里面的cookiejar先获取cookie 然后用urlopen就好啦。具体程序看我的python练习档内的jisi2/cookie_get.py文件:https://github.com/hechao/python

*** 更新一下,雪球网站的链接http://xueqiu.com/v4/stock/quote.json?code=SH000001%2CSZ399001%2CHKHSI%2CDJI30 是无法直接打开获得cookie的,依然返回400错误。

解决方法就是,所以程序里面先用opener.open打开一下雪球主页,再opener.open这个链接就可以了,应该是传递了cookie的原因, yeah.

改造成一个def了

[python]
#! /usr/bin/python
#-*- encoding: utf-8 -*-
import cookielib, urllib2

def content(index_url):
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

# default User-Agent (‘Python-urllib/2.6’) will *not* work
opener.addheaders = [
(‘User-Agent’, ‘Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36’),
]
#首先打开主页加载cookie, 然后传递给他index_url作为cookie
home = opener.open(‘http://xueqiu.com’)
quote = opener.open(index_url)
content = quote.read()
return content
[/python]