用于动态填充下拉列表的Python Web scraper(使用mechanize和beautifulsoup(

时间:2017-12-06 19:36:32

标签: python web-scraping beautifulsoup mechanize-python

我是python的新手。我正在使用python 2.7并试图抓取网站并收集数据。我在选择下拉列表时遇到问题,并获得具有更新项目列表的新响应表单。

以下是步骤:

  1. 我正在打开xyz.com网站
  2. 其UI显示为附加图片链接
  3. 我们打开的初始表单中显示了5个下拉菜单。他们是 : 国家
    区 分地区 村 年度周期
  4. 最初只填充州和年周期。其余的下拉菜单按顺序依赖于彼此。例如: 选择状态时 - >它以动态的方式填充了区域。当选择区时 - >它填充了Sub District,同样Village也选择了Sub区。由于javascript,这种动态更新正在发生。

    到目前为止我能够进入收集状态列表的阶段(使用beautifulsoup和mechanize)。最初我只是选择一个州并将表格提交为:

    def select_form(form):
       return form.attrs.get('action', None) == '/PublicReports/NutrientStatusFarmerWise'
    
    
    br = mechanize.Browser()
    br.open(url)
    br.response()
    br.select_form(predicate=select_form)
    br.form.set_all_readonly(False)
    br.form['State_Code'] = ['29']  
    response = br.submit()
    print response.read()
    

    当我打印response.read时,我看不到新填充的地区名称。我不知道这里缺少什么。以类似的方式,我需要收集区域名称以填充子区域,依此类推其他项目。

    任何线索和提示都会有很大的帮助

    PS:我已阅读旧帖并将其用作参考:
    Web Scraper for dynamic forms in python

    form with drop down options

    谢谢!

0 个答案:

没有答案