Python抓包,xhr和doc的名称一样时,如何抓取xhr数据

img


如图,两个名称相同一个是html,一个是xhr,如何抓取xhr的内容

引用 皆我百晓生 小程序回复内容作答:

在Python中,您可以使用第三方库requests来进行网络请求和数据抓取。对于您提到的情况,当名称相同的两个请求中,一个是HTML请求,另一个是XHR请求,您可以通过检查请求的类型(如Content-Type)来区分它们。以下是一个示例代码,演示如何抓取XHR请求的内容:

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',
    'X-Requested-With': 'XMLHttpRequest'
}

response = requests.get(url, headers=headers)

# 检查响应的Content-Type
content_type = response.headers.get('Content-Type', '')

if 'application/json' in content_type:
    # 这是一个XHR请求,处理响应的JSON数据
    json_data = response.json()
    print(json_data)
else:
    # 这是一个HTML请求,处理响应的HTML数据
    html_data = response.text
    print(html_data)

在这个示例中,我们使用requests库发送了一个GET请求到指定的URL,并通过设置X-Requested-With头部来模拟XHR请求。然后,我们通过检查响应的Content-Type来区分XHR请求和HTML请求,并根据不同的请求类型分别处理响应的数据。

请注意,上述代码仅为示例,实际的处理逻辑和代码结构可能因具体情况而异。您需要根据您抓取的具体网站和数据来相应地调整和处理。

希望这可以帮助您抓取XHR请求的内容,如果有任何疑问,请随时提问。

【以下回答由 GPT 生成】

我可以为你提供一个使用Python抓取名称为xhr的数据的解决方案。在这个解决方案中,我们将使用requests库来发送HTTP请求,然后解析响应以获取我们想要的数据。

首先,我们需要导入requests库:

import requests

然后,我们可以使用requests.get()方法发送一个GET请求到目标URL,并将响应存储在一个变量中:

response = requests.get(url)

请注意,你需要将url替换为你要抓取数据的目标URL。

接下来,我们可以检查响应的状态码来确保请求成功。通常,状态码为200表示成功:

if response.status_code == 200:
    # 请求成功
    pass
else:
    # 请求失败
    pass

然后,我们可以通过访问响应的text属性来获取响应的内容:

response_text = response.text

现在,我们可以使用response_text变量来处理响应内容。如果想要获取名称为xhr的数据,我们可以使用正则表达式来匹配相应的内容:

import re

xhr_data = re.findall(r'name="xhr" value="(.*?)"', response_text)

请注意,这里的正则表达式可能需要根据实际情况进行调整。 findall()方法返回一个包含所有匹配项的列表。

最后,我们可以对获取到的数据进行处理,根据需要进行存储或其他操作。

这就是一个使用Python抓取名称为xhr的数据的解决方案的代码示例和解释。请注意,这只是一个基本的示例,实际情况可能更加复杂,请根据具体情况进行适当调整和改进。

如果你有更多的问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^