如何通过脚本加载页面?

时间:2014-02-23 10:55:20

标签: python python-3.x beautifulsoup python-requests

请帮助修复脚本。

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
>>> 

1 个答案:

答案 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页面。