pythonweb抓取:503对特定站点的响应(为什么?)

pythonweb抓取:503对特定站点的响应(为什么?),python,python-3.x,selenium,ipython,python-requests,Python,Python 3.x,Selenium,Ipython,Python Requests,正在尝试学习python和web抓取一些网站。看看我能学到什么。我注意到,除非我在我的会话中使用header属性,否则我会给我一个响应503 但无论我做了什么尝试,这都不适用于我得到响应503。假设这与它的JavaScript预加载程序有关 有没有解决这个问题的办法 import requests urlAmazon = 'http://amazon.com' urlComics = 'http://readcomiconline.to' headerAgent = {'User-Agent'

正在尝试学习python和web抓取一些网站。看看我能学到什么。我注意到,除非我在我的
会话中使用header属性,否则我会给我一个
响应503

但无论我做了什么尝试,这都不适用于我得到
响应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最好的一点是,它可以使用
execute\u script('script')
模拟脚本执行的操作。对于内容由JS呈现的站点,最好的方法是了解JS如何呈现内容。跟踪XHR并检查响应,看看它是否返回您需要的内容。

关于第二个站点,您是对的,它使用js将验证发送到
/cdn cgi/l/chk_jschl
,并获取cookies。您可以使用
selenium
或反转js(大约40行)@t.m.adam通过javascript向
/cdn cgi/l/chk_jschl
发送验证,您在哪里找到了这些信息?(使用Chrome开发工具?)。我开始对Selenium(登录一个网站并在页面上找到某些元素)有点混乱。我将深入探讨这种方法。我使用firefox时没有脚本。我尝试使用Selenium,但仍然遇到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'})