python 批量查询网页导出结果_python批量查询网页的HTTP状态码
最近業余時間在改版一個網站,改版之前頻繁調整了一些欄目的屬性,包括欄目的層級,這種最怕就是調整了欄目的從屬關系,導致了欄目的URL地址改變,一旦改版就導致整個欄目及其下面的文章頁地址變更,成為死鏈。而欄目有幾千個,更加大意不得。
在欄目調整前,我把數據庫和程序復制出去新建了一個鏡像站,用鏡像站里調整,然后把欄目地址數據導出來,然后前面批量加上線上域名,然后批量查詢組裝出來的地址是否能正常訪問,能訪問就說明沒問題,返回404錯誤就說明調整后的欄目地址,是原來網站不存在的,就要排查錯誤。
此時用python批量查詢網頁的HTTP狀態碼,就顯得很方便了,代碼如下:#coding=utf-8
import urllib,time
import StringIO
import pycurl
def get_http_status(url):
html = StringIO.StringIO()
c = pycurl.Curl()
myurl=url
c.setopt(pycurl.URL, myurl)
c.setopt(pycurl.WRITEFUNCTION, html.write)
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.setopt(pycurl.MAXREDIRS, 5)
c.setopt(pycurl.CONNECTTIMEOUT, 60)
c.setopt(pycurl.TIMEOUT, 300)
c.setopt(c.HEADER, True)
c.setopt(pycurl.USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)")
ret = c.perform()
ret = html.getvalue()
if "200" in ret:
print url,c.getinfo(c.HTTP_CODE)
return 1
elif "404" in ret:
print url,c.getinfo(c.HTTP_CODE)
f = open('/Users/dcm007/Desktop/no.txt','a')
f.write(url+'\n')
f.close()
return 0
if __name__=="__main__":
urls=open('/Users/dcm007/Desktop/url.txt','r').readlines()
oknum=0
lostnum=0
for url in urls:
if get_http_status(url.strip()):
oknum+=1
else:
lostnum+=1
以上代碼的含義,從/Users/dcm007/Desktop/url.txt文件(一行一個URL)中一條一條地讀取數據,并逐個查詢他們的HTTP狀態碼,并打印出來。若出現404狀態碼,就存到/Users/dcm007/Desktop/no.txt文件中(一行一個URL)。
總結
以上是生活随笔為你收集整理的python 批量查询网页导出结果_python批量查询网页的HTTP状态码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: graphpad如何检测方差齐_如何选择
- 下一篇: kubernetes怎么读_每个 Kub