私は、eBay特集コレクションに入るPythonとBeautifulSoupを使用してWebスクレイピングツールを構築しようとしていますが、コレクション内のすべての製品のURLを取得しますいくつかは多かれ少なかれ)。ここで私は私のコードでこすりしようとコレクションのURLです:http://www.ebay.com/cln/ebayhomeeditor/Surface-Study/324079803018商品ページのリンクのためのeBay特集コレクションの掻き立て
は、ここに私のコードは、これまでのところです:
import requests
from bs4 import BeautifulSoup
url = 'http://www.ebay.com/cln/ebayhomeeditor/Surface-Study/324079803018'
soup = BeautifulSoup(requests.get(url).text, 'html.parser')
product_links = []
item_thumb = soup.find_all('div', attrs={'class':'itemThumb'})
for link in item_thumb:
product_links.append(link.find('a').get('href'))
print product_links
このスクレーパーは、リストproduct_linksへの17のリンクを追加する必要があります。ただし、途中でしか動作しません。具体的には、毎回最初の12個の製品リンクのみを削り取り、17個のリンクがすべて同じHTMLタグと属性内にあるにもかかわらず、残りの5個をそのまま残します。の関数である何
<script escape-xml="true">
if (typeof(collectionState) != 'object') {
var collectionState = {
itemImageSize: {sWidth: 280, sHeight: 280, lWidth: 580, lHeight: 620},
page: 1,
totalPages: 2,
totalItems: 17,
pageId: '2057253',
currentUser: '',
collectionId: '323101965012',
serviceHost: 'svcs.ebay.com/buying/collections/v1',
owner: 'ebaytecheditor',
csrfToken: '',
localeId: 'en-US',
siteId: 'EBAY-US',
countryId: 'US',
collectionCosEnabled: 'true',
collectionCosHostExternal: 'https://api.ebay.com/social/collection/v1',
collectionCosEditEnabled: 'true',
isCollectionReorderEnabled: 'false',
isOwnerSignedIn: false || false,
partiallySignedInUser: '@@[email protected]@[email protected]@',
baseDomain: 'ebay.com',
currentDomain: 'www.ebay.com',
isTablet: false,
isMobile: false,
showViewCount: true
};
}
</script>
:ページのHTMLコードをより詳しく見ると、私が見つけた唯一の違いは、最初の12個のリンクと最後の5は、私がここに含まれているXMLスクリプトの部分で分離されているということですこのスクリプト?このスクリプトが私のスクレイパーが最終的な5つのリンクを擦るのを怠った理由は可能でしょうか?これを回避して最後の5つを描く方法はありますか?
JavaScriptを使用して次の5つのリンクが読み込まれるため、これが起こっています。 –