社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

在这里,我不知道如何使用python beautifulsoup废弃这个javascript站点[关闭]

Nitesh Rao • 5 年前 • 1352 次点击  

我不是如何把每个组放在“选择组ID”中,通过单击“(单击查看)”按钮来抓取每个公司的详细信息。因为联系没有改变,因为我们改变了集团或公司。

我是新来的javascript网站,我不知道如何废弃这种东西,请帮助我。

代码:

import bs4

import requests

r = requests.get('http://www.mpcci.com/members_list.php')

soup = BeautifulSoup(r.text,'lxml')

select = soup.find('select',{"id":"select_gp_id"})
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44353
 
1352 次点击  
文章 [ 3 ]  |  最新文章 5 年前
Auss
Reply   •   1 楼
Auss    6 年前

你要做的是尝试在浏览器中打开你的开发模式。有一个部分显示单击按钮时完成了哪些get请求。例如,这可能会引出一个ajax查询。复制通过单击按钮触发的url,并通过播放该url来确定其语义。例如: http://someurl.com/stuff/ajax/pagenum=1&search=&date=01/01/2019/ 当你有了这个请求,并且你弄清楚了它的逻辑,你可以很容易地擦掉。在这里,我将在pagenum=之后增加访问所有站点的数量。祝你好运。

chitown88
Reply   •   2 楼
chitown88    6 年前

这将打开浏览器,然后单击下拉菜单。您可以单击所需的选项继续:

from selenium import webdriver 

driver = webdriver.Chrome()
url = 'http://www.mpcci.com/members_list.php'
driver.get(url) 

driver.find_element_by_xpath('//*[@id="select_gp_id"]').click()
Keyur Potdar
Reply   •   3 楼
Keyur Potdar    6 年前

首先,您需要获取下拉菜单中列出的所有公司的所有选项值。例如,来自 <option value="MQ==">Banking, Insurance, Moneylending Trading (Group 1)</option> ,你需要 MQ== . 使用这些值,您可以使用以下代码直接访问ajax请求:

import requests
from bs4 import BeautifulSoup

r = requests.get('http://www.mpcci.com/members_list.php')
soup = BeautifulSoup(r.text, 'lxml')

companies = [option['value'] for option in soup.select('#select_gp_id option')[1:]]
for company in companies:
    r = requests.post('http://www.mpcci.com/get_members.php', data={'select': company})
    soup = BeautifulSoup(r.text, 'lxml')
    # scrape each company's information

请求url、表单数据和请求方法都可以在开发人员工具的网络部分找到。