簡體   English   中英

帶有請求和beautifulsoup的Python Scrape

[英]Python Scrape with requests and beautifulsoup

我正在嘗試使用python請求和beautifulsoup刮取消費稅。 基本上我正在爬亞馬遜網頁。 我可以毫無問題地抓取首頁。

r = requests.get("http://www.amazon.in/gp/bestsellers/books/ref=nav_shopall_books_bestsellers")
#do some thing 

但是,當我嘗試使用網址“#2”抓取第二頁時

r = requests.get("http://www.amazon.in/gp/bestsellers/books/ref=nav_shopall_books_bestsellers#2")

我看到r的值仍等於1頁的值。

r = requests.get("http://www.amazon.in/gp/bestsellers/books/ref=nav_shopall_books_bestsellers")

不知道是#2在向第二頁發出請求時引起任何麻煩。 我也用谷歌搜索有關問題,但找不到解決方法。 用#values進行網址請求的正確方法是什么。 如何解決這個問題。 請指教。

“#2”是片段標識符 ,在服務器端不可見。 HTML內容,你得到的,開放“ http://someurl.com/page#123 ”是相同的“內容http://someurl.com/page ”。

在瀏覽器中,您會看到第二頁,因為頁面的javascript會看到片段標識符,創建ajax請求並將新內容注入到頁面中。 您應該找到並使用ajax請求的網址:

在此處輸入圖片說明

看起來我們的網址是:

http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2&aj

可以很容易地理解,我們所需要做的就是更改“ pg”參數值以獲取另一頁。

您需要在描述分頁的錨標記的href屬性中請求url。 在頁面的底部。 如果我在Google Chrome瀏覽器的開發人員控制台中檢查頁面,則會發現首頁的url是這樣的:

http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_1?ie=UTF8&pg=1

第二頁的網址是這樣的:

http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2

第二頁a標簽如下:

<a page="2" ajaxUrl="http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2&ajax=1" href="http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2">21-40</a>

因此,您需要更改請求網址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM