【问题标题】:Cannot fetch data from the website as the URL doesn't change when it grabs the data so data table is empty无法从网站获取数据,因为 URL 在抓取数据时不会更改,因此数据表为空
【发布时间】:2017-02-20 09:13:18
【问题描述】:

我刚刚开始使用 python 进行网页抓取。我使用了两个库进行抓取:requests 和 beautiful soup。我打开给定的 URL,然后在该页面上传递我想要数据的日期间隔。当我按下提交时,URL 没有改变,但数据在页面上。然后我可以访问该页面。 这就是我访问网站的方式:

r = requests.get("https://....... ")
c = r.content
soup = BeautifulSoup(c, "html.parser")

如果我想获取数据,我使用以下代码从存储数据的网站获取数据:

all = soup.find_all("table", {"class":"table table-responsive table-data"})

我的 all 变量是一个空列表,而在网站上我可以看到数据在那里。

我知道为什么会出现这个问题。当我打开 URL 时,网站要求我提交一些参数,即我的情况下的日期,然后当我按下提交时,我得到数据但 URL 没有改变。

有什么方法我也可以使用请求或美丽的汤来提交参数吗? 或者任何其他包来解决这个问题?

【问题讨论】:

    标签: python web-scraping beautifulsoup python-requests


    【解决方案1】:

    如果它的参数你可以使用做请求。如果它的核心认证更好地用硒来做。

    在 URL 中传递参数的部分应该清除这一点 - http://docs.python-requests.org/en/master/user/quickstart/

    获取

    payload = {'key1': 'value1', 'key2': 'value2'}
    r = requests.get('http://httpbin.org/get', params=payload)
    

    发布

    payload = {'key1': 'value1', 'key2': 'value2'}
    r = requests.post("http://httpbin.org/post", data=payload)
    

    【讨论】:

    • 这真的很有帮助,但现在我面临另一个问题。我正在传递 4 个参数,但最后 2 个参数是动态的。因此,对于自动化过程,它每次都会失败。有什么办法可以克服这个吗? @Vivek
    • 应该没问题...定义动态...任何代码sn-ps?
    【解决方案2】:

    我没有经验,但我认为该页面中会有一个 ajax 调用,您必须查看它在哪个 URL 上发送调用,然后该 Ajax 的响应会填充您需要的数据。

    【讨论】:

      【解决方案3】:

      Beautiful soup 不支持 POST 请求,因此您需要为此使用另一个库。

      我推荐Requests图书馆。

      然后你可以做这样的事情(这只是一个例子,你必须适应你的需要):

      import requests
      import BeautifulSoup
      
      formData = {'date_1':'1111111', 'date_2': '111111'}
      request = requests.post('https://...', data = formData)
      soup = BeautifulSoup(request.content)
      all = soup.find_all("table", {"class":"table table-responsive table-data"})
      

      【讨论】:

      • 谢谢!其实这件事情我就是这么做的。它可以工作,但现在我面临一个自动化这个过程的问题,因为我传递的最后两个参数是动态的。 @Henrique
      猜你喜欢
      • 2019-08-27
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      相关资源
      最近更新 更多