我如何从这个网站得到答复?

时间:2018-08-01 11:11:00

标签: python python-requests http-error

我的问题很简单,我想从以下网站获得答复: http://www.pulsant.com

我只是想检查是否存在重定向,为此,我正在使用以下代码:

import urllib.request as Request
import urllib.parse
url = 'http://www.pulsant.com'
user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'
values = {'name': 'Michael Foord',
          'location': 'Northampton',
          'language': 'Python' }
headers = {'User-Agent': user_agent}

data = urllib.parse.urlencode(values).encode("utf-8")
debug_requests_on()
req = Request.Request(url, data, headers)
response = Request.urlopen(req)
the_page = response.read()

此代码适用于许多网站,但是偶尔会有一些不适用于我得到此响应的网站:

HTTPError: HTTP Error 503: Service Temporarily Unavailable

该网站肯定在线且可以正常运行,但是它给我的答复不是我所期望的。

我曾尝试欺骗用户代理和其他发送请求的方法,但是我终生无法弄清楚如何从该网站获得回复。

2 个答案:

答案 0 :(得分:1)

我试图使用requests模块来获得响应,但它确实有效。如果这对您不起作用,则该网站可能依次具有一些GeoIP阻止或其他机制:

import requests
from bs4 import BeautifulSoup

r = requests.get('http://www.pulsant.com')
soup = BeautifulSoup(r.text, 'lxml')

print(soup.title.text)
print(soup.h1.text)

打印:

Hybrid IT & Managed Cloud Hosting Solutions | Pulsant

Experts in compliant business cloud platforms

答案 1 :(得分:0)

尝试一下卷曲(对我有用)

 curl -i -H -L www.pulsant.com

或者如果您想使用https:

 curl -i -H -L https://www.pulsant.com

或(与https://不同)

curl -i -H -L www.pulsant.com:443

响应与您所描述的不同:

HTTP/1.1 301 Moved Permanently
Date: Wed, 01 Aug 2018 12:30:13 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: max-age=3600
Expires: Wed, 01 Aug 2018 13:30:13 GMT
Location: https://www.pulsant.com/
Server: cloudflare
CF-RAY: 4438509685966b7f-LHR