[英]How do I scrape data from multiple webpages with BeauitfulSoup?
我的以下代碼有問題,很抱歉,我是這一切的新手,我想將FullPage列表中的字符串添加到實際URL中,然后再訪問它們並從頁面中抓取一些數據。 到目前為止,這很好,但是我不知道如何訪問列表中的其他鏈接。
輸出只會給我一頁數據,但我需要30頁數據,如何使該程序遍歷每個鏈接?
URL具有模式,第一部分具有' http://arduinopak.com/Prd.aspx?Cat_Name= ',第二部分具有產品類別名稱。
import urllib2
from bs4 import BeautifulSoup
FullPage = ['New-Arrivals-2017-6', 'Big-Sales-click-here', 'Arduino-Development-boards',
'Robotics-and-Copters']
urlp1 = "http://www.arduinopak.com/Prd.aspx?Cat_Name="
URL = urlp1 + FullPage[0]
for n in FullPage:
URL = urlp1 + n
page = urllib2.urlopen(URL)
bsObj = BeautifulSoup(page, "html.parser")
descList = bsObj.findAll('div', attrs={"class": "panel-default"})
for desc in descList:
print(desc.getText(separator=u' '))
import urllib2
from bs4 import BeautifulSoup
FullPage = ['New-Arrivals-2017-6', 'Big-Sales-click-here', 'Arduino-Development-boards',
'Robotics-and-Copters']
urlp1 = "http://www.arduinopak.com/Prd.aspx?Cat_Name="
URL = urlp1 + FullPage[0]
for n in FullPage:
URL = urlp1 + n
page = urllib2.urlopen(URL)
bsObj = BeautifulSoup(page, "html.parser")
descList = bsObtTj.findAll('div', attrs={"class": "panel-default"})
for desc in descList:
print(desc.geext(separator=u' '))
如果您希望對每個鏈接進行換碼,則將代碼的最后3行移入循環即可。
您當前的代碼獲取所有鏈接,但僅存儲一個BeautifulSoup
對象引用。 您可以將它們全部存儲在數組中或在訪問另一個URL之前對其進行處理(如下所示)。
for n in FullPage:
URL = urlp1 + n
page = urllib2.urlopen(URL)
bsObj = BeautifulSoup(page, "html.parser")
descList = bsObj.findAll('div', attrs={"class": "panel-default"})
for desc in descList:
print(desc.getText(separator=u' '))
另外,請注意,使用PascalCase命名的名稱是按慣例保留給類的。 如果要表示常量,則FullPage
通常將其寫為fullPage
或FULL_PAGE
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.