我正在尝试从具有以下格式的网站获取数据:" http://www.mysite.here?pageNo=2"
如何使用Urllib2和/或BeautifulSoup从连续的页面中获取html数据?此代码仅返回第一页的html。
import urllib2
from bs4 import BeautifulSoup
for x in range(1,450):
numb = str(x)
url = "http://www.mysite.here?pageNo="+numb
page = urllib2.urlopen(url).read()
soup = BeautifulSoup(page, "html.parser")
Print soup
答案 0 :(得分:2)
在每次迭代中,您都会创建名为soup
的新变量。
您需要为所有网页创建存储空间 - list
和pages
。并在每次迭代时追加它。
import urllib2
from bs4 import BeautifulSoup
pages = []
for x in range(1, 450):
numb = str(x)
url = "http://www.mysite.here?pageNo=" + numb
page = urllib2.urlopen(url).read()
pages.append(BeautifulSoup(page, "html.parser"))
print pages
答案 1 :(得分:1)
您可以创建一个数组soup = []
并使用soup.append(soup)
添加到其中。
如果你只想要一个汤对象,你需要在每一步添加内容,例如身体的
soup = BeautifulSoup("<html><body></body></body>") # initialize soup
for x in range(1,450):
numb = str(x)
url = "http://www.mysite.here?pageNo="+numb
page = urllib2.urlopen(url).read()
tmpsoup = BeautifulSoup(page, "html.parser")
for element in tmpsoup.body:
soup.body.append(element)