第一次的爬虫小试(爬取网页文本)
生活随笔
收集整理的這篇文章主要介紹了
第一次的爬虫小试(爬取网页文本)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 一、導(dǎo)入需要的模塊:
- 二、網(wǎng)頁中找到對應(yīng)的標(biāo)簽:
- (1)、首先我們要先在網(wǎng)頁中找到文本所在的范圍(如圖(有開發(fā)者工具的瀏覽器按下F12即可查看)):
- (2)、接下來我們要找到網(wǎng)頁的頁碼超鏈接:
- 三.、提取文本:
- 四、下面是源碼:
一、導(dǎo)入需要的模塊:
-
Urllib和requests模塊是python中發(fā)起http請求最常見的模塊,但是requests模塊使用更加方便簡單。
-
lxml解析網(wǎng)頁
-
docx是創(chuàng)建一個document文檔對象
二、網(wǎng)頁中找到對應(yīng)的標(biāo)簽:
(1)、首先我們要先在網(wǎng)頁中找到文本所在的范圍(如圖(有開發(fā)者工具的瀏覽器按下F12即可查看)):
可以看出我們在選中 class = content 的標(biāo)簽時是對應(yīng)我們需要的文本所在的位置
我們在class = content下面找到文本所在的標(biāo)簽
在 p 標(biāo)簽中我們找到了我們所需要的文字
那么我們就在此寫下
(2)、接下來我們要找到網(wǎng)頁的頁碼超鏈接:
找到頁碼超鏈接之后我們發(fā)現(xiàn)他只是一個更改數(shù)字的頁碼鏈接并不是js
這就好辦了
注意:強(qiáng)調(diào)一點(diǎn),最后一行的Url = url 我是前一個用了大寫后面用的小寫,如果用成小寫,后面運(yùn)行出來是循環(huán)截取但是直截取了第一頁的內(nèi)容,所以這里還是寫成大寫的(也可以自己去研究一下哈。)
三.、提取文本:
因?yàn)樾【幰彩且粋€初學(xué)者,這串代碼是在別處借鑒的稍后我會在后面寫出出處
if __name__ == '__main__':headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ''AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'}document = Document()rs = requests.get(url=Url, headers=headers)root = etree.HTML(rs.content)texts = root.xpath('//div[@class="content"]/p/text()')#網(wǎng)址內(nèi)的分布for text in texts:str(text).replace('\xa0\xa0\xa0', '')document.add_paragraph(text)print(text)#輸出爬取的值document.save('勞動通論.docx')#導(dǎo)出并創(chuàng)建成word文檔四、下面是源碼:
''' 功能:爬取網(wǎng)頁中的“文本”并導(dǎo)出成docx CSDN作者:莫莫先生 修改:Sherry 問題:現(xiàn)還不能一次性在同一個文件下導(dǎo)出,需要在Pycharm或者Anaconda運(yùn)行輸出后自行復(fù)制粘貼 ''' import requestsfrom lxml import etreefrom docx import DocumentpageNum = []url = 'https://www.dati56.com/post/13635.html?ipage={}' # 網(wǎng)址 for i in range(1, 23):# 將頁碼加入到一個列表里pageNum.append(i)for item in pageNum:# 將頁面數(shù)字利用format方法進(jìn)行填充UrlUrl = url.format(item)if __name__ == '__main__':headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ''AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'}document = Document()rs = requests.get(url=Url, headers=headers)root = etree.HTML(rs.content)texts = root.xpath('//div[@class="content"]/p/text()')#網(wǎng)址內(nèi)的分布for text in texts:str(text).replace('\xa0\xa0\xa0', '')document.add_paragraph(text)print(text)document.save('勞動通論.docx')這是原作者:https://blog.csdn.net/weixin_44835732/article/details/103047765
最后如果有什么不懂的、或者有更好的意見,歡迎留言,私信交流。
侵聯(lián)刪
總結(jié)
以上是生活随笔為你收集整理的第一次的爬虫小试(爬取网页文本)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有哪些实用的电脑软件值得推荐?
- 下一篇: 原来javaeye变成iteye了