请帮助修复脚本。
import pprint
import requests
import bs4
topicsWatch = [
'http://forum.saransk.ru/',
'http://forum.saransk.ru/topic/194169-v-kakuiu-sportivnuiu-sektciiu-mozhno-zapisat-reben/',
]
#1
html = requests.get(topicsWatch[0])
print(topicsWatch[0], end='\n')
print(html.status_code ) #OK
print(html.raise_for_status())
#2
html = requests.get(topicsWatch[1])
print(topicsWatch[1], end='\n')
print(html.status_code ) #?????????????
print(html.raise_for_status())
有两个代码块。 “#1”和“2”。 阻止“#1”将返回响应“200” 块“#2”将返回响应“404”。
我不明白这一点。两个页面实际存在:
http://forum.saransk.ru/
http://forum.saransk.ru/topic/194169-v-kakuiu-sportivnuiu-sektciiu-mozhno-zapisat-reben/
如何在这两种情况下都这样做,返回“200”?
输出:
>>> ================================ RESTART ================================
>>>
http://forum.saransk.ru/
200
None
http://forum.saransk.ru/topic/194169-v-kakuiu-sportivnuiu-sektciiu-mozhno-zapisat-reben/
404
Traceback (most recent call last):
File "C:\VINT\OPENSERVER\OpenServer\domains\localhost\python\parse_html\5_forum_new\q.py", line 24, in <module>
print(html.raise_for_status())
File "C:\Python33\lib\site-packages\requests\models.py", line 773, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found
>>>
答案 0 :(得分:2)
不,第二页(http://forum.saransk.ru/topic/194169-v-kakuiu-sportivnuiu-sektciiu-mozhno-zapisat-reben/)不存在。
你得到一个很好的错误页面,说它不存在但是这是一个默认页面。您也会为http://forum.saransk.ru/topic/invalid-page获得相同的页面 - 例如。
具体来说,对于该页面,他们使用nginx-server,如果请求不存在的页面,error_page - property其他Web服务器具有相似的设置,您可以定义要显示的内容,以便您不会最终得到了一个丑陋的404页面。