我在抓取以下url时遇到一些问题: http://102.37.123.153/Lists/eTenders/AllItems.aspx 我正在将Python与Selenium结合使用,但要运行许多“onclick”javascript事件以获得最低级别的信息。有人知道如何实现自动化吗? 谢谢
url = 'http://102.37.123.153/Lists/eTenders/AllItems.aspx'
chrome_options = Options()
chrome_options.add_argument("--headless")
browser = webdriver.Chrome('c:/Users/AB/Dropbox/ITProjects/Scraping/chromedriver.exe', options=chrome_options)
res = browser.get(url)
time.sleep(10)
source = browser.page_source
soup = BeautifulSoup(source)
for link in soup.find_all('a'):
if link.get('href') == 'javascript:':
print(link)
你不需要硒这个网站,你需要耐心。让我解释一下你是怎么做到的
这里发生的情况是,当您单击X时,会发出一个
AJAX
请求来获取Y
,在您单击Y
之后,会发出另一个AJAX
请求来获取Z
,然后继续因此,您只需
simulate
这些请求,打开networks选项卡,看看它是如何处理请求的,然后在代码中生成相同的请求,然后得到响应,根据它,执行下一个请求,循环将继续进行,直到到达树的最内层这种方法没有UI,从技术上讲,更不友好,更难实现。但是它更有效,另一方面,您可以使用
selenium
之类的选项选择可单击的元素它也会起作用
我还注意到,有时候,链接并不
AJAX
,它们只是隐藏了信息,但它在源代码中。要知道您将在回复中收到什么,请在网站中单击鼠标右键,然后选择View page source
,注意这与inspect element
不同相关问题 更多 >
编程相关推荐