我正在使用mechanize&python对网站进行爬网并获取数据。到目前为止,我可以提交表单,并从该页面获取内容。但我无法触发点击“下一页”链接和获取数据。我的代码如下:
import re
import mechanize
from bs4 import BeautifulSoup
br = mechanize.Browser()
br.set_handle_robots(False)
br.open("http://portal.uspto.gov/EmployeeSearch/")
br.select_form(name="SearchEmployeeDataBean")
br.form['name'] = 'a'
response = br.submit()
soup = BeautifulSoup(response)
table = soup.find_all('table')[16]
rows = table.find_all('tr')
data = [[td.findChildren(text=True) for td in tr.findAll("td")] for tr in rows]
for a in data:
if a:
examiner = " ".join(a[0][1].split())
phone = a[1][1]
extension_office = a[3][1]
office_description = "|".join(re.findall(r'\d+', a[4][1]))
# print(examiner, phone, extension_office, office_description)
现在在结果页面上有一个按钮,上面有文本“Next page>;”。我用下面的代码尝试了一下:
按钮HTML:
^{pr2}$Python代码:
req = br.click_link(text_regex='Next Page >>')
r2 = br.open(req)
r2soup = BeautifulSoup(r2)
但没有成功。在
请帮助我如何单击“下一步”按钮并从那里获取数据,直到没有下一页。在
我发现mechanize中的问题是它不支持javascript。每当mechanize在提交后到达页面时,javascript由于分页而无法工作,因此不会触发click。我已经用selenium实现了我想要的。和美丽的汤使用以下硒选择:
相关问题 更多 >
编程相关推荐