urlopen始终检索相同的网页

时间:2012-07-08 12:24:32

标签: python python-2.7 beautifulsoup urllib2 urlopen

我正在尝试使用urllib2,BeautifulSoup和Python 2.7解析网页。

问题在于上游:每次我尝试检索新网页时,都会得到我已经检索过的网页。但是,我的网络浏览器中的页面有所不同:请参阅page 1page 2。页码循环是否有问题?

以下是代码示例:

def main(page_number_max):
    import urllib2 as ul
    from BeautifulSoup import BeautifulSoup as bs

    base_url = 'http://www.senscritique.com/clement/collection/#page='

    for page_number in range(1, 1+page_number_max):
        url = base_url + str(page_number) + '/'
        html = ul.urlopen(url)
        bt = bs(html)

        for item in bt.findAll('div', 'c_listing-products-content xl'):
            item_name = item.findAll('h2', 'c_heading c_heading-5 c_bold')
            print str(item_name[0].contents[1]).split('\t')[11]

        print('End of page ' + str(page_number) + '\n')

if __name__ == '__main__':
    page_number_max = 2
    main(page_number_max)

2 个答案:

答案 0 :(得分:2)

当您向服务器发送http请求时,将忽略“#”字符后面的所有内容。 “#”后面的部分仅供浏览器使用。

如果您在Chrome浏览器中打开开发人员工具(或在Firefox中打开firebug),您会看到每次更改senscritique.com上的页面时都会向服务器发送请求。这就是您要查找的数据的来源。

我没有详细说明为了从这个页面检索数据而要发送什么,因为我认为这与他们的服务条款不一致。

答案 1 :(得分:1)

“#”是用于标识和跳转到文档特定部分的锚标记。浏览器会这样做,因此当您发送请求时,将加载整个网页,而忽略其余部分。