使用python和beautifulsoup进行webscraping aspx,结果是html中没有来自原始html的信息

如何解决使用python和beautifulsoup进行webscraping aspx,结果是html中没有来自原始html的信息

我尝试从aspx网站上抓取一些数据:

https://firmen.berlin/sites/fitber/search/showDetails.aspx

问题是,我生产的汤没有我需要的信息。我使用了以下代码:

from bs4 import BeautifulSoup
import requests
 
url = 'https://firmen.berlin/sites/fitber/search/defaultSearch.aspx'
url_get = requests.get(url)
soup = BeautifulSoup(url_get.content,'lxml')
print(soup)

我想从原始html中的所有链接生成结果列表,例如:

<a class="link-for-details" href="defaultSearch.aspx?SearchResult$Index=0">Züblin Spezialtiefbau GmbH Niederlassung Nord</a>

在我的汤中,我什至看不到此信息,因此我很难提取信息。我的汤看起来像这样:

</tr>
</table></td><td><img alt="" src="/WebResource.axd?d=PAq-a1as6t-LReK0Ct4W-a-FZXy55jP40uRx7Q6LRhJW2XWPBaE5o5LkeHDfHMhcfRQjpBE01XueKWdcLlg1A_aQI6me1x6xrA18XieG9iOnaJs-0&amp;t=637103382965614113"/></td><td nowrap="nowrap"><input id="ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_PanelLegalForm_DetailSearchLegalFormSwitcher_DetailSearchLegalForm2_TreeSelector_ctl12n58CheckBox" name="ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_PanelLegalForm_DetailSearchLegalFormSwitcher_DetailSearchLegalForm2_TreeSelector_ctl12n58CheckBox" type="checkbox"/><span id="ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_PanelLegalForm_DetailSearchLegalFormSwitcher_DetailSearchLegalForm2_TreeSelector_ctl12t58">UG (haftungsbeschränkt)</span></td>
</tr>
</table><table cellpadding="0" cellspacing="0">
<tr>
<td><table width="20">
<tr>

也许有人知道如何在一个好的html汤中转换aspx,以便我可以提取链接。

非常感谢。

解决方法

我用Selenium解决了,这是代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import pandas as pd
import time 

driver = webdriver.Chrome('/Users/username/Anaconda3/chromedriver_win32/chromedriver.exe')

driver.get('https://firmen.berlin/sites/fitber/search/defaultSearch.aspx')

driver.find_element(By.ID,"ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_CheckBoxPanel_CheckBoxAGB1").click();

driver.find_element(By.ID,"ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_CheckBoxPanel_CheckBoxAGB2").click();

driver.find_element(By.ID,"ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_CheckBoxPanel_ButtonConfirm").click();

driver.find_element(By.ID,"ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_PanelTitleEmployee_Title").click();

driver.find_element(By.ID,"ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_DetailSearchEmployeeSwitcher_DetailSearchEmployee2_TreeSelector_ctl06n9CheckBox").click();

driver.find_element(By.ID,"ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_DetailSearchEmployeeSwitcher_DetailSearchEmployee2_TreeSelector_ctl06n10CheckBox").click();

driver.find_element(By.ID,"ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_DetailSearchEmployeeSwitcher_DetailSearchEmployee2_TreeSelector_ctl06n11CheckBox").click();

driver.find_element(By.ID,"ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_DetailSearchEmployeeSwitcher_DetailSearchEmployee2_TreeSelector_ctl06n12CheckBox").click();

driver.find_element(By.ID,"ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_DetailSearchEmployeeSwitcher_DetailSearchEmployee2_TreeSelector_ctl06n13CheckBox").click();

driver.find_element(By.NAME,"ctl00$BodyPanel$ContentPanel$FitContent$SearchPanel$DetailSearchEmployeeSwitcher$DetailSearchEmployee2$TreeSelector$ctl10").click();

time.sleep(3)

driver.find_element(By.ID,"ctl00_BodyPanel_ContentPanel_FitContent_SearchPanel_ButtonPanel_ButtonSearch").click();

company_name = driver.find_elements(By.CLASS_NAME,"link-for-details")

company_list = []
for p in range(len(company_name)):
    company_list.append(company_name[p].text)

print(company_list)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?