나는 파이썬과 BeautifulSoup를 사용하여 eBay 추천 컬렉션에 들어가고 컬렉션 내의 모든 제품의 URL을 검색하는 웹 스크 레이 핑 도구를 만들려고합니다 (대부분의 컬렉션에는 17 개 제품이 있지만 일부는 약간 더 많거나 적음). http://www.ebay.com/cln/ebayhomeeditor/Surface-Study/324079803018제품 페이지 링크를위한 이베이의 추천 컬렉션 모집
여기 내 코드는 지금까지의 :
이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 개 링크를 추가해야합니다 여기에 내 코드에서 긁어 시도 컬렉션의 URL입니다. 그러나 일부분 만 작동합니다. 특히, 17 개의 링크가 모두 동일한 HTML 태그 및 속성 내에서 발견 되더라도 처음 12 개의 제품 링크 만 매번 긁어서 남은 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 개의 링크를 다 쳤던 이유는 아닌가? 이 문제를 해결하고 마지막 다섯 부분을 감출 수있는 방법이 있습니까?
마지막 몇 요청 http://www.ebay.com/cln/_ajax/2/ebayhomeeditor/324079803018에 아약스를 통해 생성되는
JavaScript를 사용하여 다음 5 개의 링크가로드되기 때문에 이러한 현상이 발생합니다. –