使用Urllib2或Beautifulsoup解析一系列网址

时间:2015-11-24 12:43:49

标签: python beautifulsoup

我正在尝试从具有以下格式的网站获取数据:" 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

2 个答案:

答案 0 :(得分:2)

在每次迭代中,您都会创建名为soup的新变量。 您需要为所有网页创建存储空间 - listpages。并在每次迭代时追加它。

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)