在这里,我不了解如何使用Python beautifulsoup删除此javascript网站

时间:2019-02-01 08:06:26

标签: python beautifulsoup

我不是如何通过单击“(单击以查看)”按钮将每个组放入“选择组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"})

3 个答案:

答案 0 :(得分:1)

首先,您需要获取下拉菜单中列出的所有公司的所有选项值。例如,您需要从<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

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

答案 1 :(得分:0)

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

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()

答案 2 :(得分:0)

您要做的是尝试在浏览器中打开开发人员模式。有一部分显示单击按钮时完成的GET请求。例如,这可能会引发Ajax查询。复制通过单击按钮触发的URL,并通过播放来确定其语义。例如:http://someurl.com/stuff/ajax/pagenum=1&search=&date=01/01/2019/ 有了此请求并弄清楚了它的逻辑后,就可以轻松抓取。在这里,我将在pagenum =之后增加数字以访问所有站点。祝好运。