일부 웹 사이트를 비웃는 파이썬과 웹을 실험 해 봅니다. 내가 배울 수있는 걸 본다. 내가 에 헤더 속성을 사용하지 않는 한 Amazon.com이 나에게 Response 503
을 줄 것을 알았다.파이썬 웹 스크래핑 : 503 특정 사이트에 대한 응답 (어떻게 되겠습니까?)
그러나 readcomiconline.to에 대해서는 작동하지 않습니다. 내가 시도한 내용이 무엇이든지간에 Response 503
이 표시됩니다. 이것을 JavaScript preloader와 관련 있다고 가정합니다.
어떤 문제가 있습니까?
import requests
urlAmazon = 'http://amazon.com'
urlComics = 'http://readcomiconline.to'
headerAgent = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'}
client = requests.session()
resultOne = client.get(urlAmazon)
print(resultOne) #<Response [503]>
resultOne = client.get(urlAmazon, headers=headerAgent)
print(resultOne) #<Response [200]>
resultTwo = client.get(urlComics)
print(resultTwo) #<Response [503]>
resultTwo = client.get(urlComics, headers=headerAgent)
print(resultTwo) #<Response [503]>
셀레늄을 사용해도 여전히 503 오류가 발생합니다. 자바 스크립트 주위에 어떤 방식 으로든 적절한 웹 긁기를 수행 할 수 있습니까? 셀레늄에 대한
import bs4, requests
from selenium import webdriver
from lxml import html
headerAgent = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'}
res = requests.get('http://readcomiconline.to/Comic/Saga/Issue-1 &readType=1',headers=headerAgent)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, "lxml")
comicElement = soup.find('table', {'class':'listing'})
당신은 두 번째 사이트에 대해 옳았습니다. js를 사용하여'/ cdn-cgi/l/chk_jschl'에 확인을 보내고 쿠키를 얻습니다. 'selenium' 또는 js를 뒤집을 수 있습니다 (약 40 줄입니다) –
@ t.m.adam javascript를 통해 정보를 찾아서/cdn-cgi/l/chk_jschl로 보내셨습니까? (Chrome DevTools 사용?). 나는 Selenium (웹 사이트에 로그인하고 페이지에서 특정 요소를 찾는 것)을 약간 엉망으로 만들기 시작했다. 이 접근법에 대해 더 자세히 살펴볼 것입니다. – Josh
나는 스크립트가없는 파이어 폭스를 사용한다. –