我是Python的新手,请原谅我,如果问题不清楚或答案是否明显。
我想抓取网页http://jassa.fr/。我生成了一些随机输入(序列),看看它如何与我自己的数据保持一致。我尝试使用selenium抓取页面,但网页的HTML没有使用任何ID,我也不知道如何在不使用id({{{{{{{{{{{ 3}})。
有没有人对我有任何想法如何解决这个问题,特别是关于我想刮掉服务器端产生的结果?
提前致谢!
[编辑]
感谢您的快速回复!
如何使用selenium访问此文本区域:
< textarea style =" border:1px solid#999999;"的tabindex =" 1"命名="序列" COLS =" 70"行=" 4" onfocus =" if(this.value =='输入或粘贴您的序列')this.value ='';">输入或粘贴您的序列
答案 0 :(得分:1)
修改:在澄清您需要访问名为<textarea>
的{{1}}后,我建议您使用sequence
,有关详细信息,请参阅here选择Selenium中的元素。
find_element_by_name
Selenium能够导航树并不仅通过ID而且通过类,标记名称,链接文本等选择元素(请参阅the docs),但我发现自己对以下场景更加满意:我使用Selenium来获取网页内容(因此浏览器使用javascript项呈现页面),然后使用它提供BeautifulSoup并使用BeautifulSoup方法导航它。它看起来像这样:
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。您要解析的网站似乎并没有严重依赖JavaScript,因此我可以更轻松地使用更简单的解决方案,例如RoboBrowser或MechanicalSoup(或mechanize用于python2)。