Js网站不返回剃须数据

2024-05-16 03:58:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的脚本我总是用来从网上刮取数据,但我没有得到成功

我想从网站上的表格中获取数据:

https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx

我使用以下代码进行刮片:

from bs4 import BeautifulSoup
from selenium import webdriver

url = "https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx"

browser = webdriver.PhantomJS()
browser.get(url)
html = browser.page_source
bs = BeautifulSoup(html, 'lxml')
print(bs)

目前我只从站点接收js,而不是从表本身接收数据


Tags: fromhttpsbrimportbrowserurlwwwgov
2条回答

您可以简单地使用api调用json响应时的请求并遵循post方法来完成这项工作

以下是工作代码:

import requests
import json
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

body = { 'tipoEmpresa': '0'}  

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36',
    'x-dtpc': '33$511511524_409h2vHHVRBIAIGILPJNCRGRCECUBIACWCBUEE-0e37',
    'X-Requested-With': 'XMLHttpRequest',
    'Content-Type': 'application/json'
    }


url='https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx/PopulaComboEmpresas' 
r = requests.post(url, data=json.dumps(body), headers =headers, verify = False)
res =  r.json()['d']
print(res)
    

    

是否将HTTP POST发送到https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx/PopulaComboEmpresas

这将以JSON的形式返回表的数据

在浏览器中执行F12>;网络>;Fetch/XHR以查看更多详细信息,如HTTP头和POST正文

相关问题 更多 >