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

2024-07-04 16:28:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手。我正在使用Python2.7,并尝试抓取网站并收集数据。我有问题在选择下拉列表和得到新的回应表与更新的项目列表。在

步骤如下:

  1. 我要开一家xyz.com网站网站
  2. 其用户界面显示为附加图像链接
  3. 在我们打开的初始表单中有5个下拉菜单。他们是: 状态
    地区 分区 村庄 年周期

最初只填充状态和年份周期。其余的下拉菜单按顺序相互依赖。如: 选择状态后-->它将以动态方式填充区域。当选择了“地区”->;它将填充子区域,同样,选择子区域后,村庄也将被填充。这种动态更新是因为javascript。在

到目前为止,我能够达到收集状态列表的阶段(使用美化组和机械化)。最初我只是选择一个州,然后将表单提交为:

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()

当我打印响应。读取我看不到新居民区的名字。我不知道这里缺了什么。与类似的方式一样,我需要收集地区名称,以填充子区等其他项目。在

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

附言:我读过这篇旧文章,并以此作为参考:
Web Scraper for dynamic forms in python

form with drop down options

谢谢你!在


Tags: 项目brform区域表单列表网站response

热门问题