【问题标题】:how to scrape subsequent pages and put output in a dataframe [duplicate]如何抓取后续页面并将输出放入数据框中[重复]
【发布时间】:2017-06-15 03:01:13
【问题描述】:

我是 websoup 的初学者,我无法在以下网站 http://www.newyorksocialdiary.com/party-pictures (http://www.newyorksocialdiary.com/party-pictures?page=1-5) 上抓取几页 (5) 并且我不知道如何将输出放入数据框中(日期)。谢谢!

  from bs4 import BeautifulSoup
  import requests
  for i in range(10):
     url= "http://www.newyorksocialdiary.com/party-pictures".format(i)
     r=requests.get(url)
     soup= BeautifulSoup(r.text)

 for r in soup.findAll('span', attrs={'class': 'views-field views-field-created'}) :
     print r.get_text()

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    尝试抓取网站的一般模式是首先弄清楚页面是如何实现的。

    一般

    1. 您的情况:通过页面参数 ?page=1 / 2 / 3 这可能是 更简单的是,你只需保留一个计数器并循环浏览所有页面 你需要

      1. 通过不同的绝对url,最简单的一个

      2. 通过 html post 请求,这可能有点棘手。

    在你的情况下,它只是一个页面变量,你可以将它附加到基本 url 并得到你想要的。

    对于 pandas 部分,有一个方便的 read_html 选项。

    【讨论】:

      【解决方案2】:
      from bs4 import BeautifulSoup
      import requests
      for i in range(10):
          url= "http://www.newyorksocialdiary.com/party-pictures?page={}".format(i)
          r=requests.get(url)
          soup= BeautifulSoup(r.text)
      
          for span in soup.findAll('span', attrs={'class': 'views-field views-field-created'}) :
              print span.get_text()
      

      你几乎明白了,只需更改你的网址。

      【讨论】:

      • 谢谢!!非常...
      猜你喜欢
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      相关资源
      最近更新 更多