Chloe· 发表于 2023-4-19 10:06:16

python爬虫响应400

求助!!!!急急急
我的网址在浏览器中可以打开,但是用session.get()会返回response 400,请求方法是正确的,求助解答~helphelp

isdkz 发表于 2023-4-19 10:23:21

.代码呢?

Chloe· 发表于 2023-4-19 10:27:32

isdkz 发表于 2023-4-19 10:23
.代码呢?

代码是这样:h = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"}
session = requests.Session()
session.headers = h
session.get('https://xueqiu.com/')
session.get('https://xueqiu.com/cubes/rebalancing/history.json?cube_symbol=ZH2293412&count=20&page=1')

isdkz 发表于 2023-4-19 10:45:09

本帖最后由 isdkz 于 2023-4-19 10:46 编辑

Chloe· 发表于 2023-4-19 10:27
代码是这样:h = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTM ...

你这个在浏览器的请求也是400的,你虽然能看到有东西,但是你打开开发者工具看到的状态码也是400,

你在python中也能获取到那个你在浏览器看到的东西,400 可能是参数不对

陶远航 发表于 2023-4-22 10:10:59

当您使用 session.get() 请求网址时,返回 400 状态码通常表示请求中包含了无效的参数或格式不正确。以下是一些可能导致此问题的原因和解决方法:

网址中包含特殊字符或中文字符。在发送 HTTP 请求时,URL 中的特殊字符和中文字符需要进行 URL 编码。您可以使用 Python 内置的 urllib.parse 模块中的 quote() 函数来对 URL 进行编码,例如:
import requests
from urllib.parse import quote

url = 'http://example.com/中文字符'
encoded_url = quote(url, safe='/:?=&')
response = requests.get(encoded_url)
请求头信息不正确。有些网站会要求在请求头信息中包含特定的参数,例如 User-Agent、Referer 等。如果请求头信息不正确,服务器可能会返回 400 状态码。您可以使用 session.headers 属性来设置请求头信息,例如:
import requests

url = 'http://example.com'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
    'Referer': 'http://example.com'
}
session = requests.Session()
session.headers.update(headers)
response = session.get(url)
网站需要登录或进行身份验证。有些网站需要在登录后才能进行访问,如果您没有进行登录或者登录信息不正确,服务器可能会返回 400 状态码。您可以在请求中添加相应的登录信息或者使用相关的登录 API 进行登录后再进行访问。

希望以上解决方法可以帮助您解决问题。如果问题仍然存在,您可以尝试在网上查找更多解决方案,或者联系相关技术支持团队以获取更多帮助。
页: [1]
查看完整版本: python爬虫响应400