0

파이썬/Webscraping 초급 그래서 나와 함께하시기 바랍니다. 모든 제품 이름을 가져 오려고합니다.요청 및 아름다운 스프를 사용하여 테이블 내용 스크랩

불행히도 코드를 실행할 때 아무 것도 반환되지 않습니다. 같은 코드가 대부분의 다른 사이트에서 잘 작동하지만 수십 가지 변형을 시도했으며이 사이트에서 사용할 수 없습니다.

이 URL은 Bsoup를 사용하여 스크래핑 할 수 있습니까? 모든 의견을 보내 주시면 감사하겠습니다.

import bs4 
import requests 

url = 'http://www.rakuten.com/sr/searchresults.aspx?qu' 
payload = {'q': 'Python',} 

r = requests.get(url % payload) 

soup = bs4.BeautifulSoup(r.text) 
titles = [a.attrs.get('href') for a in soup.findAll('div.productscontainer a[href^=/prod]')] 

for t in titles: 
    print(t) 





import bs4 
import requests 

url = 'http://www.rakuten.com/sr/searchresults.aspx?qu' 

r = requests.get(url) 

soup = bs4.BeautifulSoup(r.text) 
titles = [td.text for td in soup.findAll('td', attrs={'class': 'searchlist'})] 

for t in titles: 
    print(t) 

이 형식이 맞으면 JS가 나를 잡아 당길 수 있습니까?

+0

질문에 코드를 편집 할 수 있으며 주석에 추가 할 필요가 없습니다. –

답변

0

먼저 문자열 형식이 잘못된 것 같습니다. 이것 좀 봐 :

>>> url = 'http://www.rakuten.com/sr/searchresults.aspx?qu' 
>>> payload = {'q': 'Python',} 
>>> url % payload 
'http://www.rakuten.com/sr/searchresults.aspx?qu' 

나는 그것이 당신이 원하는 것 같지 않다. 파이썬에서 문자열 포맷이 어떻게 작동하는지 살펴보고 URL을 구성하는 적절한 방법을 생각해 내야합니다.

둘째, "검색 엔진"은 JavaScript를 많이 사용합니다. 아마도 처음에 검색 한 HTML 콘텐츠를 보면서 원하는 정보를 검색 할 수 없을 것입니다.

관련 문제