如何抓取后续页面并将输出放入数据框中[重复]
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?
Pandas 如何从 JSON 索引列表并将其放入数据框中?