python - urllib2.HTTPError: HTTP Error 400: Bad Request 求帮忙

查看:1511
本文介绍了python - urllib2.HTTPError: HTTP Error 400: Bad Request 求帮忙的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

新手这里,简单的直接抓取一个页面也报错,帮忙看下

url = 'https://xueqiu.com/stock/f10/finmainindex.json'
user_agent = 'Mozilla/5.0'  
values = {'symbol' : 'SZ000001',  'page' : '1','size' : '1' }  
headers = { 'User-Agent' : user_agent }  
data = urllib.urlencode(values)  
print data
request = urllib2.Request(url, data, headers)  
print request
response = urllib2.urlopen(request)  
page = response.read() 
print page 

报错如下,

(flask)[root@centos7 xueqiu]# python xueqiu.py 
symbol=SZ000001&page=1&size=1
<urllib2.Request instance at 0x7f7e6b4f81b8>
Traceback (most recent call last):
  File "xueqiu.py", line 22, in <module>
    response = urllib2.urlopen(request)  
  File "/usr/local/pythonbrew/pythons/Python-2.7.10/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/local/pythonbrew/pythons/Python-2.7.10/lib/python2.7/urllib2.py", line 437, in open
    response = meth(req, response)
  File "/usr/local/pythonbrew/pythons/Python-2.7.10/lib/python2.7/urllib2.py", line 550, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/local/pythonbrew/pythons/Python-2.7.10/lib/python2.7/urllib2.py", line 475, in error
    return self._call_chain(*args)
  File "/usr/local/pythonbrew/pythons/Python-2.7.10/lib/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/usr/local/pythonbrew/pythons/Python-2.7.10/lib/python2.7/urllib2.py", line 558, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 400: Bad Request

解决方案

# coding: utf-8

import requests

session = requests.Session()
session.headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
}
session.get('https://xueqiu.com')
r = session.get('https://xueqiu.com/stock/f10/finmainindex.json?symbol=SZ000001&page=1&size=1')
print r.text

这篇关于python - urllib2.HTTPError: HTTP Error 400: Bad Request 求帮忙的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆