python爬虫之爬取时光网电影影评
最近看了美國(guó)往事這部電影。于是就想到最近剛學(xué)的爬蟲,就像試試把時(shí)光網(wǎng)影評(píng)爬取下來(lái),并按照影評(píng)的名字存放在本地文件夾。
在長(zhǎng)影評(píng)頁(yè)面可以看到每篇文章的標(biāo)題對(duì)應(yīng)都有一個(gè)blogid,并且這個(gè)id對(duì)應(yīng)該影評(píng)正文頁(yè)的后綴
那么我們便可以通過(guò)這個(gè)id來(lái)實(shí)現(xiàn)獲取當(dāng)前頁(yè)所有影評(píng)的地址
首先定義一個(gè)方法
id = []#存儲(chǔ)電影id
text = []#存儲(chǔ)文本
name = ''#存儲(chǔ)文章名字
?def getUrl(url):
response = requests.get(ur)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
main = soup.find_all(class_ = 'db_comtool')#找到所有標(biāo)簽為db_comtool的div里面內(nèi)容
for i in main:
id.append(i.get('blogid'))#將所有blogid的內(nèi)容添加到id這個(gè)列表中
這個(gè)時(shí)候我們就得到了當(dāng)前頁(yè)所有的id
然后打開(kāi)任意一篇文章查看源代碼分析可以得出正文文本所在的<p>標(biāo)簽在一個(gè)class為db_mediacont db_commentcont的div里面文章的標(biāo)題在一個(gè)class為px38 mt30 c_000的<h2>標(biāo)簽中
?def getArticle(url):
global text
response = requests.get(url)#訪問(wèn)網(wǎng)站
html = response.text#保存網(wǎng)站源代碼
bf = BeautifulSoup(html,'html.parser')#解析網(wǎng)址
a1 = bf.find_all(class_='db_mediacont db_commentcont')#獲取正文文本
a2 = bf.find_all(class_='px38 mt30 c_000')#獲取文章標(biāo)題
for each in a1:
text.append(re.sub('[\t\n]', "", re.sub(r'<[^>]+>', "", str(each))))#利用正則表達(dá)式過(guò)濾掉無(wú)用內(nèi)容
for each in a2:
name = (re.sub('[\t\n]', "", re.sub(r'<[^>]+>', "", str(each))))
f = open('時(shí)光網(wǎng)影評(píng)/%s.txt'%name, 'w') # 首先先創(chuàng)建一個(gè)文件對(duì)象,打開(kāi)方式為w,名字為剛才得到的name
for each in text:
f.writelines(each.encode("gbk", 'ignore').decode("gbk", "ignore")) # 用readlines()方法寫入文件
text = []#清空text
然后將網(wǎng)址放入函數(shù)中打開(kāi)
?for i in range(1,15):
ur = 'http://movie.mtime.com/11319/comment-{}.html'.format(i)#自動(dòng)翻頁(yè)
getUrl(ur)
for i in id:
url = 'http://movie.mtime.com/11319/reviews/{}.html'.format(i)#自動(dòng)訪問(wèn)每篇影評(píng)的對(duì)應(yīng)地址
getTitle(url)
最后可以看到已經(jīng)成功的將影評(píng)保存在本地了。
總結(jié)
以上是生活随笔為你收集整理的python爬虫之爬取时光网电影影评的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: taobao.logistics.con
- 下一篇: 利用python解决指派问题(匈牙利算法