python爬蟲新聞的學習筆記

2021-07-25 20:04:41 字數 2456 閱讀 8990

剛開始查到的資料都是用正則。。主要我是小白,啥都不太懂

後來發現乙個神器,beautifusoup

主要目的是:爬取news.xidian.edu.cn中一部分新聞內容,以標題,內容的形式儲存到csv裡

大概步驟如下,

1. 我所要獲取的主頁面是news.xidian.edu.cn,首先我應該先爬取下整個頁面

import requests

res = requests.get('')

res.encoding='utf-8'

2. 利用beautifusoup來對這個頁面進行「模式化」(模式化我自己取的名字)

模式化的意思就是 對這個爬取下來的html內容進行一定的操作,使得soup有一定的格式,可以通過print來看一下。這種格式它可以直接通過select('')來獲取內容。

soup = beautifulsoup(res.text,'html.parser')

3. 模式化後,我就要分析我要提取的內容的標籤有什麼特徵,這邊我要提取的是標籤中有『_content_left_bottom_right '的內容

這邊要注意的是,我提取出來的wholenews是列表list的形式,它不可以直接在用select,我就在這邊犯了好多錯誤。

wholenews = soup.select('.content1_left_bottom_right')

4.提取出了我需要的內容,但是分析網頁源**發現,我要提取的東西是在wholenews中以li形式存在的。但是又不能直接提取wholenews

自己想了個辦法,可不可以先把wholenews變成和第二步中res.text的形式,然後在模式化,最後select('li'),這種方法不知道對不對。。只能試試了,可能有更好的辦法。

newsoup = beautifulsoup(str(wholenews),'html.parser')

newlist = newsoup.select('li')

5. 提取出來的newlist也是乙個列表的形式,裡面有很多陣列,這樣的話,我就可以採用for迴圈,來一條一條提取內容。

一定要結合自己要爬取網頁的**!

for news in newlist:  #news 是newlist重的每一項,可以用select

a = news.select('a')

a2 = a[1].text

link = a[1]['href']

if (len(link) <=21):

turelink = '' + link

else:

turelink = link

6. 上面標題就已經被提取出來啦。然後我要進入各個頁面,今天每乙個標題下的內容的提取。

首先前面已經把url給分析出來了,這樣我就可以再利用第一步,先把第乙個子頁面的所有內容爬下來

reslist = requests.get(turelink)

reslist.encoding='utf-8'

souplist = beautifulsoup(reslist.text,'html.parser')

7. 爬下整個頁面後,我需要繼續分析源**,爬內容。

再次說明。一定要結合自己所爬網頁的**!

alltext = souplist.select('#wz_zw') #乙個列表

neirongsoup = beautifulsoup(str(alltext), 'html.parser')

neironglist = neirongsoup.select('p')

lenp = len(neironglist)

print("內容:")

wn = ''

for i in range(lenp):

n = neironglist[i].text

wn = str(wn) +str(n)

print(wn)

執行發現,ok,當然對於小白來講,真的是失敗了很多次,測試了很多次,感覺**的優化性也不是很好。。暫且先這樣吧

8.最後我還想把東西儲存到csv裡,寫了個儲存的def,然後全部**的最後呼叫store函式。

import codecs

csvfile = open('xidian1.csv','w',newline='')

writer = csv.writer(csvfile)

def store(title,content):

csvrow =

writer.writerow(csvrow)

9.關於csv還是出錯了一下,比如亂碼之類的,暫時還沒有完全解決。。

爬蟲學習 爬蟲之新浪新聞

學習資料參考 python網路爬蟲實戰 源程式如下 import requests import json from bs4 import beautifulsoup import pandas results zturl res requests.get zturl jd json.loads r...

python實現新浪新聞爬蟲

將爬取的新聞 儲存到資料夾e sinanews 中,成功後直接通過瀏覽器開啟。import urllib.request import re data urllib.request.urlopen read data2 data.decode utf 8 ignore 加第二個引數ignore pa...

python爬蟲學習筆記

一 爬蟲思路 對於一般的文章而言,思路如下 1.通過主頁url獲取主頁原始碼,從主頁原始碼中獲得 標題 鏈結 如想要抓取知乎上的新聞,就獲得主頁上的新聞鏈結 2.繼續通過 標題 鏈結獲得 標題 原始碼,進而獲得 標題 中的內容。其中,當存在多頁時,先將每一頁都一樣的url寫下來,然後迴圈加入頁碼,具...