功能描述:爬取知乎热榜的排名信息并存储到文件中正则表达式
程序设计:cookie
代码: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