Python爬取網站新聞


准備###

本實例使用輔助工具Fiddler抓取網頁數據和使用文檔查看工具sublime正則過濾(也可使用其它文檔編輯工具),python開發工具使用Pycharm編輯
我們選取搜狐網的新聞頁面進行爬取,對搜狐新聞以列表的形式顯示出來。首先我們打開Fiddler 添加一個Filters,將搜狐網址放入Filters,在瀏覽器訪問搜狐新聞網並刷新,從Fiddler中選中該訪問記錄,找出請求數據:

我們將Raw中的內容復制到sublime中:

選取User-Agent中的內容
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36' 作為我們訪問數據的頭文件,並選中http://www.sohu.com/c/8/進行訪問,可以查看到新聞頁面:

我們將http://www.sohu.com/c/8/作為我們爬取數據的url。
在頁面中右擊查看頁面源代碼,查看源代碼並復制到sublime中,在sublime中進行查找並輸入(點擊左下角的正則過濾:.*)target="_blank">(.*)</a></h4>可以查看到新聞標題,我們將target="_blank">(.*)</a></h4>作為正則表達式的匹配內容

程序實現###


class HandleNews(object):
    def __init__(self):
        self.request = requests.session()
        # self.head = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' \
        #             'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
        self.header={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',
                     }
        self.newslist = ''
    def handle_list(self):
        handle_patten=re.compile(r'target="_blank">(.*)</a></h4>')
        handle_url='http://www.sohu.com/c/8'
        handle_news=self.handle_request(methon='GET',url=handle_url,head=self.header)
        self.newslist=re.findall(handle_patten,handle_news)

    def handle_request(self,methon,url,head,data=None , info=None):
        if methon == 'GET':
            handle_respone=self.request.get(url=url,headers=head)
        else:
            handle_respone=' '
        return handle_respone.text
if __name__ == '__main__':
    handle=HandleNews()
    handle.handle_list()
    print(handle.newslist)

其中我們需要引用requests和re模塊(用於正則表達式匹配)
import requests import re
運行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM