2014-02-23 139 views
0

请帮助修复脚本。如何通过脚本加载页面?

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

回答

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其他网络服务器有类似的设置,这样你就不会结束与一个旧的丑陋的404页面。