gpt4 book ai didi

Python:抓取网页结果,其结果是在服务器端生成的

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:04 24 4
gpt4 key购买 nike

我对 Python 相当陌生,所以如果问题不清楚或者答案很明显,请原谅我。

我想抓取网页http://jassa.fr/ 。我生成了一些随机输入(序列),并查看它如何与我自己的数据保持一致。我尝试使用 selenium 抓取页面,但网页的 HTML 不使用任何 id,并且我不知道如何在不使用 id 的情况下浏览 DOM ( impossible with selenium? )。
有谁对我有任何想法如何解决这个问题,特别是关于我想抓取服务器端生成的结果?

提前致谢!

[编辑]
感谢您的快速回复!
如何使用 selenium 访问此文本区域:
<textarea style =“边框:1px实体#999999;” tabindex="1"name="sequence"cols="70"rows="4"onfocus="if(this.value=='输入或粘贴您的序列')this.value='';">输入或粘贴你的序列

最佳答案

编辑:澄清后您需要访问 <textarea>名为 sequence我建议使用find_element_by_name ,参见here有关在 Selenium 中选择元素的更多详细信息。

from selenium import webdriver
url = "http://jassa.fr/"
browser = webdriver.Firefox()
browser.get(url)
form = browser.find_element_by_tag_name("form")
sequence = form.find_element_by_name("sequence")
sequence.clear()
sequence.send_keys("ATTTAATTTA")
form.submit()
<小时/>

Selenium 不仅可以通过 ID 来导航树并选择元素,还可以通过类、标签名称、链接文本等来选择元素(请参阅 the docs ),但我发现自己更适合以下场景:我使用Selenium 抓取网页内容(以便浏览器使用 javascript 渲染页面),然后提供 BeautifulSoup并使用 BeautifulSoup 方法对其进行导航。它看起来像这样:

from bs4 import BeautifulSoup
from selenium import webdriver

url = "http://example.com/"

browser = webdriver.Firefox()
browser.get(url)
page = BeautifulSoup(browser.page_source, "lxml")

# Let's find some tables and then print all their rows
for table in page("table"):
for row in table("tr"):
print(row)

但是,我不确定您是否真的需要 Selenium。您要解析的网站似乎并不严重依赖 JavaScript,因此使用像 RoboBrowser 这样的更简单的解决方案可能会更容易。或MechanicalSoup (或 mechanize 对于 python2)。

关于Python:抓取网页结果,其结果是在服务器端生成的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34403689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com