python定向爬蟲實例(四)

功能描述:爬取知乎熱榜的排名信息並存儲到文件中正則表達式

程序設計:cookie

  • 獲取知乎熱榜的HTML文本
  • 解析文本獲取排名、標題、熱度信息
  • 將獲取到的信息存入文件中

代碼:app

#爬取知乎熱榜的排名、標題、熱度並保存在文件中
#技術路線:requests----re
#總結:當正則表達式中有(.+,.*)這樣的符號時,爲了不匹配到不相關的數據,此時一般採用最小匹配法

import requests,re
def getHTML(url,cookie):
    try:
        r=requests.get(url,headers={'User-Agent':'Mozilla/5.0','Cookie':cookie})
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return ""

def parseHTML(demo,file_path):
    f=open(file_path,"w")
    rank_list=re.findall(r'>\d+</div>',demo)  #排名
    title_list=re.findall(r'HotItem-title\">.+?</h2>',demo)  #標題
    hot_list=re.findall(r'</svg>\d+\s.+?<span',demo)   #熱度
    for i in range(len(rank_list)):
        info_dict={}
        try:
            info_dict.update({
                "排名":rank_list[i][1:-6],
                "標題":title_list[i][15:-5],
                "熱度":hot_list[i][6:-5],
            })
            f.write(str(info_dict)+'\n')
        except:
            continue
    f.close()
    print("爬取完畢!")

def main():
    url='https://www.zhihu.com/hot'     #知乎熱榜
    cookie = '這是一個cookie信息'
    file_path="D://實驗結果//知乎熱榜.txt"
    demo=getHTML(url,cookie)
    parseHTML(demo,file_path)
main()

效果:svg

相關文章
相關標籤/搜索