爬取多篇知乎網文章內容

一、獲取網頁鏈接

找到自己想要爬取的文章把它們加入urls字典中

1 def get_url():
2     urls=[]#獲取多條網頁鏈接將它們存入urls中
3     urls.append('http://daily.zhihu.com/story/9717314')
4     urls.append('http://daily.zhihu.com/story/9717526')
5     urls.append('http://daily.zhihu.com/story/9717328')
6     return urls

二、存儲操作

把獲取的內容存進csv文件夾

1 def html_save(s):
2     with open('save.csv','a')as f:#以a的方式表示把內容追加到已有內容的後面
3         f.write(s+'\n')

三、網頁解析

對得到的網頁鏈接進行內容的爬取並存儲

 1 def parse_html(url):
 2     headers = {
 3     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
 4     }#在網頁面獲取訪問頭
 5     docx=requests.get(url,headers=headers)#用requests獲取網頁,調用訪問頭進入訪問否則可能會不被允許。
 6     soup=BeautifulSoup(docx.text,'html.parser')#用beutifulsoup進行解析
 7     c_txt=soup.find('div',{'class':'content'})#在網頁界面找到需要查找的信息名稱進行find
 8     for i in c_txt:
 9         if i.string!=None:#當查找的信息不爲空
10             s=i.string.replace('\n','')#把查找到的內容\n替換爲空格
11             if s!='':#把不爲空的部分進行存儲操作
12                 print(s)
13                 html_save(s)

獲取頭請求

最後一行就是我們的請求頭

 

 

 

四、對多條網頁鏈接進行爬取

把get_url裏面存儲的網頁鏈接取出來進行判斷如果不爲空就進行解析操作,否則跳出。

1 def parse_htmls(n):#進行多網頁爬取存儲
2     for url in get_url():#把網頁進行判斷解析
3         if url!=None:#不爲空就進行解析輸出
4            parse_html(url) 
5            print('parse sucsses!')
6         else:#爲空則結束本次循環進入下一循環
7             print('None html')
8             continue

五、源代碼

 1 import requests
 2 from bs4 import BeautifulSoup
 3 
 4 def get_url():
 5     urls=[]#獲取多條網頁鏈接將它們存入urls中
 6     urls.append('http://daily.zhihu.com/story/9717314')
 7     urls.append('http://daily.zhihu.com/story/9717526')
 8     urls.append('http://daily.zhihu.com/story/9717328')
 9     return urls
10 
11 def html_save(s):
12     with open('save.csv','a')as f:#以a的方式表示把內容追加到已有內容的後面
13         f.write(s+'\n')
14 
15 def parse_html(url):
16     headers = {
17     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
18     }#在網頁面獲取訪問頭文件
19     docx=requests.get(url,headers=headers)#用requests獲取網頁,頭文件進入訪問否則可能會不被允許。
20     soup=BeautifulSoup(docx.text,'html.parser')#用beutifulsoup進行解析
21     c_txt=soup.find('div',{'class':'content'})#在網頁界面找到需要查找的信息名稱進行find
22     for i in c_txt:
23         if i.string!=None:#當查找的信息不爲空
24             s=i.string.replace('\n','')#把查找到的內容\n替換爲空格
25             if s!='':#把不爲空的部分進行存儲操作
26                 print(s)
27                 html_save(s)
28     
29 def parse_htmls(n):#進行多網頁爬取存儲
30     for url in get_url():#把網頁進行判斷解析
31         if url!=None:#不爲空就進行解析輸出
32            parse_html(url) 
33            print('parse sucsses!')
34         else:#爲空則結束本次循環進入下一循環
35             print('None html')
36             continue
37 
38 parse_htmls(3)#解析三條網頁信息

六、運行結果

爬取結果

爬取成功輸出parse sucsses!提示

 

 存儲結果:

爬取內容存入csv文件夾如下

 

 歡迎大家提出建議!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章