我的问题很简单,我想从以下网站获得答复: 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
该网站肯定在线且可以正常运行,但是它给我的答复不是我所期望的。
我曾尝试欺骗用户代理和其他发送请求的方法,但是我终生无法弄清楚如何从该网站获得回复。
答案 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