0

我正在尝试使用 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)
4

2 回答 2

2

当您向服务器发送 http 请求时,“#”字符之后的所有内容都将被忽略。“#”后面的部分只对浏览器可用。

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

I'm not going into details about what exacly to send in order to retrieve data from this page, because I think it's not consistent with their TOS.

于 2012-07-08T13:17:18.547 回答
1

"#" is the anchor tag used to identify and jump to specific parts of the document.The browser does it so when you send the request the whole web page is loaded while the rest is ignored.

于 2013-03-26T13:43:17.673 回答