我正在尝试使用urllib2,BeautifulSoup和Python 2.7解析网页。
问题在于上游:每次我尝试检索新网页时,都会得到我已经检索过的网页。但是,我的网络浏览器中的页面有所不同:请参阅page 1和page 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)
答案 0 :(得分:2)
当您向服务器发送http请求时,将忽略“#”字符后面的所有内容。 “#”后面的部分仅供浏览器使用。
如果您在Chrome浏览器中打开开发人员工具(或在Firefox中打开firebug),您会看到每次更改senscritique.com上的页面时都会向服务器发送请求。这就是您要查找的数据的来源。
我没有详细说明为了从这个页面检索数据而要发送什么,因为我认为这与他们的服务条款不一致。
答案 1 :(得分:1)
“#”是用于标识和跳转到文档特定部分的锚标记。浏览器会这样做,因此当您发送请求时,将加载整个网页,而忽略其余部分。