我正在尝试从this网站上抓取数据。要访问表,我需要单击“搜索”按钮。我能够使用机械化成功完成此操作:
br = mechanize.Browser()
br.open(url + 'Wildnew_Online_Status_New.aspx')
br.select_form(name='aspnetForm')
page = br.submit(id='ctl00_ContentPlaceHolder1_Button1')
“页面”根据需要为我提供了带有表格的结果网页。但是,我想遍历底部的后续页面的链接,这将触发javascript。我听说机械化不支持此功能,所以我需要一种新的策略。
我相信我可以使用请求库中的发布请求访问后续页面。但是,我无法单击主页上的“搜索”以进入初始表。换句话说,我想使用请求来复制上面的代码。我尝试过
s = requests.Session()
form_data = {'name': 'aspnetForm', 'id': 'ctl00_ContentPlaceHolder1_Button1'}
r = s.post('http://forestsclearance.nic.in/Wildnew_Online_Status_New.aspx', data=form_data)
不确定原因,但这会再次返回主页(无需单击“搜索”)。任何帮助表示赞赏。
答案 0 :(得分:0)
我认为您应该研究scrapy
答案 1 :(得分:0)
您在发布请求中忘记了一些参数: https://www.pastiebin.com/5bc6562304e3c 使用Google开发工具检查发布请求