0

urllib2、BeautifulSoup、および Python 2.7 を使用して Web ページを解析しようとしています。

問題は上流にあります。新しい Web ページを取得しようとするたびに、取得済みのページが取得されます。ただし、私の Web ブラウザーではページが異なります。ページ 1ページ 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 でページを変更するたびにサーバーにリクエストが送信されることがわかります。探しているデータはそこから得られます。

このページからデータを取得するために正確に何を送信すればよいかについては詳しく説明しません。TOS と一致していないと思うからです。

于 2012-07-08T13:17:18.547 に答える
1

「#」は、ドキュメントの特定の部分を識別してジャンプするために使用されるアンカー タグです。ブラウザは、リクエストを送信すると Web ページ全体が読み込まれ、残りは無視されます。

于 2013-03-26T13:43:17.673 に答える