【问题标题】:Python web scraping, can't 'click' next pagePython网页抓取,无法“点击”下一页
【发布时间】:2023-03-23 22:40:01
【问题描述】:

我正在从页面中获取数据,填写表单字段如下:

url = 'http://www.theurl.co.uk/Enquiry.asp'

values = {'PageSize' : '20', 'SortField' : '1', 'SortOrder' : 'ASC'}

data = urllib.urlencode(values)          
req = urllib2.Request(url, data)
source = urllib2.urlopen(req)

soup = BeautifulSoup(source)

然后从汤中提取我的数据。我的问题是我需要移动到接下来的 20 个结果,下一页按钮由源代码中的以下行控制:

<input type="submit" name="Action" value=" > " style="font-family: Verdana; font-size: 8pt; color: #000080; font-weight: bold">

如果不使用 mechanize(我以前没有使用过),我怎么可能做到这一点;这可能吗?

非常感谢

【问题讨论】:

  • 您需要找出告诉它进入下一页的字段并将其添加到您的参数中 - 可能是“next”或某种“startAt”值。
  • 点击下一步按钮后观察 url 变化。如果可能的话,给我们工作的 URL 以便我们观察它。
  • 点击next按钮后url不变。
  • 浏览器地址栏上的 url 可能不会改变...但是您可以看到使用 firefox 篡改数据(首选)获取的 url...和 ​​firefox live http headers...查看屏幕后面的活动...这将告诉您需要提供哪些参数才能进入第 2 页或更多页面。如果你发布网址我可以试试。

标签: python web-scraping


【解决方案1】:

寻找表单元素的动作属性。如果没有,那么它将使用相同的 URL。我敢打赌,表单数据中的某个页码值是您需要使用的。

【讨论】:

  • 我能找到的唯一页码值在下一个按钮下方:  Page: 1 of 4 但是将 'iPage' : '2' 添加到我的值字典不会加载结果的第二页...
  • 浏览器地址栏上的 url 可能不会改变...但是您可以看到使用 firefox 篡改数据(首选)获取的 url...和 ​​firefox live http headers...查看屏幕后面的活动...这将告诉您需要提供哪些参数才能进入第 2 页或更多页面。如果你发布网址我可以试试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
  • 2019-07-29
相关资源
最近更新 更多