python入門數(shù)據(jù)挖掘-數(shù)據(jù)爬取總結(jié)
from time import *import refrom requests import *headers={'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0"}url='https://baijiahao.baidu.com/s?id=1758250285871602861'def 代碼爬取及過濾部分(url): ? ?try: ? ? ? ?res=get(url,headers=headers,timeout=10).text ? ? ? ?'''有時訪問一個網(wǎng)址,可能等待很久都沒有反應(yīng),由于無法獲得網(wǎng)頁源代碼 ? ? ? ?程序就會一直等待,呈現(xiàn)“假死”狀態(tài)。為了避免陷入無限的等待之中,需要設(shè)置訪問超時 ? ? ? ?也就是說,如果訪問一個網(wǎng)址的等待響應(yīng)時間超過指定秒數(shù),就報出異常,停止訪問 ? ? ? ?''' ? ? ? ?r=re.findall('<p .*?>(.*?)</p>',res,re.S) ? ? ? ?return r ? ?except: ? ? ? ?return 0def 結(jié)果部分(r): ? ?a=1 ? ?list=[] ? ?for i in r: ? ? ? ?list.append(str(a)+'.'+i) ? ? ? ?a+=1 ? ?return listdef 保存結(jié)果部分(list): ? ?f=open('結(jié)果.txt','w') ? ?for i in list: ? ? ? ?f.write(i+'\n') ? ?f.close()def 主函數(shù)部分(): ? ?u=代碼爬取及過濾部分(url) ? ?list=結(jié)果部分(u) ? ?保存結(jié)果部分(list)while True: ? ?主函數(shù)部分() ? ?sleep(100)
