현재 나는 옐프 페이지에서 레스토랑의 공식 웹 사이트 링크를 잡기 위해이 코드를 작성하고 있습니다. 코드는 대부분 작동하지만 목록을 통해 각 항목을 한 번 반환하는 대신 두 번 첫 번째 링크를 반환합니다. 나는 그것을 해결하려고 노력했지만, 나는 이것이 일어나는 원인에 막 붙어있다. 내가 잘못하고있는 것을 발견 할 수 있니?목록의 첫 번째 웹 사이트 만 실행하는 Python 3.5 스크레이퍼
또한 Yelp에서 링크를 가져 오는 것에 대해 다른 질문이 있습니다. 나는 옐프가 그것을 좋아하지 않을지도 모른다는 것을 안다. 그러나 나는 2 만 페이지의 링크를 손으로 직접 복사하여 붙여 넣을 수 없으므로 이것을 사용해야한다.
내 IP를 차단합니까? 요청간에 2 초 지연을 삽입하면 차단이 계속됩니까? 지연 삽입 외에 다른 방법이 있습니까?
import urllib
import urllib.request
from bs4 import BeautifulSoup
url=[
"https://www.yelp.com/biz/buffalo-wild-wings-ann-arbor-3",
"https://www.yelp.com/biz/good-burger-east-dearborn-dearborn?osq=mac+donalds"
]
def make_soup(url):
for i in url:
thepage=urllib.request.urlopen(i)
soupdata=BeautifulSoup(thepage, "html.parser")
return soupdata
compoundfinal=''
soup=make_soup(url)
for i in url:
for thing1 in soup.findAll('div',{'class':'mapbox-text'}):
for thing2 in thing1.findAll('a',{'rel':'nofollow'}):
final='"http://www.'+thing2.text+'",\n'
compoundfinal=compoundfinal+final
print(compoundfinal)
대단히 감사합니다! 이 특정 문제를 해결할 수있을뿐만 아니라이 게시물에서 많은 것을 배웠습니다. – James