2501_93323859 2025-11-03 18:10 采纳率: 25%
浏览 7

爬取一个网页下面的信息

问题遇到的现象和发生背景

https://wsb.gansu.gov.cn/wsb/c116314/list.shtml
用网页源代码可以看到具体的数据
用requests.get网页的数据返回码一直为400

尝试过的解决方法

通过开发者工具抓包看到有一个请求返回的数据是具体的数据,请求带着cookie还有一个参数UAta9QfS,值是加密的,get请求带上cookie和UAta9QfS之后 返回的码是400
对请求头删过一些无关紧要的字段,没有效果

我想要达到的结果

想要拿到网页数据

import requests


headers = {
    "Accept": "*/*",
    "Accept-Language": "zh-CN,zh;q=0.9",
    "Cache-Control": "no-cache",
    "Connection": "keep-alive",
    "Pragma": "no-cache",
    "Referer": "https://wsb.gansu.gov.cn/wsb/c116314/list.shtml",
    "Sec-Fetch-Dest": "empty",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Site": "same-origin",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
    "X-Requested-With": "XMLHttpRequest",
    "sec-ch-ua": "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "\"Windows\""
}
cookies = {
    "Path": "/",
    "4hP44ZykCTt5O": "601Jn5tAdLUmYOTaquBkNVsvTnT9xbMJbJ1VeE1wPbYMz1Gw6_xWZSZ39ysNQiStMoa354UsCru7jExu1B4qLxTG",
    "_gscu_984081904": "61987137i1etni18",
    "yfx_c_g_u_id_10000005": "_ck25110116522017295807921792939",
    "7d0f4f97e8317b129e": "3601cf1eb5196db6546ba2733010c134",
    "_gscbrs_984081904": "1",
    "yfx_f_l_v_t_10000005": "f_t_1761987140708__r_t_1762137043582__v_t_1762157912064__r_c_2",
    "_gscs_984081904": "t621579110n8xug10|pv:12",
    "4hP44ZykCTt5P": "0FW3xWVR2g.jqtBYQREa2pFSQZUy8LoA134sxQharTnYycOgbh84sH79mQ8klfiKLIP_6IzMUxCHQxg3HvtNRs.JVtSh2mFX1xmCTxMrlAk0BR5LHFwInId_hpxkOvDNKJtHhDROcsiKmlwtLNveVmldfpCs1v7DFV2D0KNo_0BI1D8yBBOjiIulDchlN_sPyyzG.oFGWfmtSPgJmrYGtLPcMONNZLX3R3RzjXEHLf4BCVgOcXgiCyKta4USI3ouScUJoKXFhH_aGGHea.bNa0YU3oCG_c0Mn4dJyG4nJ1jzOP4ygxvwBqNEir4LZeN1rWamD62gDJZyI2_eydX_6jG29O3kC6asjeW73it2W0rykkyqnyNdvY_4q1W0v80bz"
}
url = "https://wsb.gansu.gov.cn/common/search/ecdbf8efb0524164b80d5eeb00aa8348"
params = {
    "UAta9QfS": "0BrF1walqErGBPF_gw6q1BUASAG9fOkZB7wEWQYq5akKw49LPlN8uGEq8aasyf.HZwYt0xkxzMQO1V63yuG6ZEJWX.jaQo3zu0EBIiZh4EtJOyNAfxMCjvPOVjCKtOWdz9cyHi26QoKuXK2aIW3zEhuPV9IQ5ifbMOD.cuSzWb6PVM38buPCr3YmpLH3CNjS9d4GQPhxIRl6NWVTgw1BmgYOOuUD.a_nTGa"
}
response = requests.get(url, headers=headers, cookies=cookies, params=params)

print(response.text)
print(response)

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2025-11-03 18:39
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题分析

    你想爬取一个网页下的信息,但是使用 requests.get 获取网页数据返回码一直为 200,但是网页源代码中并没有看到具体的数据。

    可能原因

    1. 网页使用了JavaScript加载数据: 网页可能使用了JavaScript来加载数据,而 requests.get 只能获取网页的HTML源代码,不会执行JavaScript代码。
    2. 网页使用了Ajax请求: 网页可能使用了Ajax请求来获取数据,而 requests.get 只能获取网页的HTML源代码,不会获取Ajax请求的数据。
    3. 网页使用了反爬虫机制: 网页可能使用了反爬虫机制来防止爬虫程序获取数据。

    解决方案

    1. 使用Selenium: 使用Selenium来模拟浏览器的行为,执行JavaScript代码并获取网页的数据。
    2. 使用Ajax请求: 使用Ajax请求来获取网页的数据,例如使用 requests.get 来获取Ajax请求的URL。
    3. 使用反爬虫机制绕过: 使用反爬虫机制绕过的方法,例如使用代理IP、User-Agent切换等。

    核心代码

    from selenium import webdriver
    
    # 使用Selenium来模拟浏览器的行为
    driver = webdriver.Chrome()
    driver.get("https://wsb.gansu.gov.cn/wsb/c116314/list.shtml")
    
    # 获取网页的数据
    data = driver.page_source
    print(data)
    
    # 关闭浏览器
    driver.quit()
    

    或者

    import requests
    from bs4 import BeautifulSoup
    
    # 使用Ajax请求来获取网页的数据
    url = "https://wsb.gansu.gov.cn/wsb/c116314/list.shtml"
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 获取网页的数据
    data = soup.find_all('div', class_='list-item')
    print(data)
    

    请根据实际情况选择合适的解决方案。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月3日