如何抓取后续页面并将输出放入数据框中[重复]

Posted

技术标签:

【中文标题】如何抓取后续页面并将输出放入数据框中[重复]【英文标题】: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()

【问题讨论】:

【参考方案1】:

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

一般

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

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

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

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

【讨论】:

谢谢!!非常...

以上是关于如何抓取后续页面并将输出放入数据框中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如果beautifulsoup中没有数据,如何让f.write()放入NA?

python 爬网页 遇到重定向怎么处理

Pandas 如何从 JSON 索引列表并将其放入数据框中?

如何获取每个打开窗口的名称列表并将其放入数据框中?

如何识别从今天到过去和未来(不包括周末)的三个工作日,并将它们放入熊猫数据框中?

将函数应用于两列并将输出映射到新列[重复]