python使用代理抓取网页解决思路
python使用代理抓取网页
抓取A网页的时候,返回的数据是B网页的。我猜主要是因为服务器判断了IP和本地操作系统使用的语言,所以跳转到了中文网页,而我想抓取 英文网页的内容,下面是抓取的主要方法,我用了发送头信息和代理ip都有错误,等大神解决,谢谢。。
------解决方案--------------------
为何舍近求远要模拟点击?模拟请求这个链接的请求不是更简单么?
------解决方案--------------------
这样的话应该是header和cookies引起的,你最好在浏览器抓一下包,看看为何浏览器可以驻留不跳转,然后模拟相关参数一并发过去
------解决方案--------------------
http请求的header有accept-language选项,设定它为en试试。
------解决方案--------------------
方便的话说下是哪个网站咯。。。
抓取A网页的时候,返回的数据是B网页的。我猜主要是因为服务器判断了IP和本地操作系统使用的语言,所以跳转到了中文网页,而我想抓取 英文网页的内容,下面是抓取的主要方法,我用了发送头信息和代理ip都有错误,等大神解决,谢谢。。
def get_file(url):
try:
post_data={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0',
'Cookie':'_EDGE_V=1; MUID=2D180D23E0E560D513D30B4FE1E6603B; SRCHD=MS=3436214&SM=1&D=3420506&AF=NOFORM; SRCHUSR=AUTOREDIR=0&GEOVAR=&DOB=20140703; SRCHHPGUSR=CW=1423&CH=432; SRCHUID=V=2&GUID=71E834CF8223467EA24B145B4C7B3373; MUIDB=2D180D23E0E560D513D30B4FE1E6603B; _HOP=; _SS=SID=F64B6E641FAB4E88808ACAD9D85E47EE&bIm=193110; SCRHDN=ASD=0&DURL=#; WLS=TS=63542127679; _FS=mkt=en-us&ui=#en-us; FBS=WTS=1406530935352; _UR=TC=C1'
}
# 报错 proxy = "http://211.167.112.14:80"
cj=cookielib.LWPCookieJar()
opener=urllib2.build_opener(urllib2.ProxyHandler({"http":proxy}),urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
req=urllib2.Request(url,urllib.urlencode(post_data))
operate=opener.open(req)
data=operate.read()
return data
except BaseException, e:
print e
return None
print data
------解决方案--------------------
为何舍近求远要模拟点击?模拟请求这个链接的请求不是更简单么?
------解决方案--------------------
这样的话应该是header和cookies引起的,你最好在浏览器抓一下包,看看为何浏览器可以驻留不跳转,然后模拟相关参数一并发过去
------解决方案--------------------
http请求的header有accept-language选项,设定它为en试试。
------解决方案--------------------
方便的话说下是哪个网站咯。。。