尝试学习python和web抓取一些网站。看看我能学到什么。我注意到Amazon.com会给我一个Response 503
,除非我在SESSION.get()
中使用了header属性。
但这对readcomiconline.to无效,无论我尝试什么,我都会Response 503
。假设这与它的JavaScript预加载器有关。
有任何解决方法吗?
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]>
尝试使用Selenium并仍然收到503错误。任何方式围绕javascript做一个适当的网页刮?
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'})
答案 0 :(得分:0)
关于selenium的最好的事情是它可以使用execute_script('script')
模拟脚本执行的操作。对于内容由JS呈现的网站,最好的方法是了解JS如何呈现内容。跟踪XHR并检查响应,看它是否返回您需要的内容。