一 工具準備
我用的是Anaconda+PyCharm的組合
如何安裝使用看這篇教程就夠了:
URL: https://blog.csdn.net/yggaoeecs/article/details/78378938
非常詳細。
二 簡單爬取
1 安裝requests及BeautifulSoup庫
在pyCharm的終端(Terminal)中輸入:
pip install requests //安裝requests庫
pip install BeautifulSoup //安裝Beautiful庫
pip list //查看這兩個庫是否安裝成功
2 requests庫的使用
詳細使用方法請參閱官方中文教程地址:
URL: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
這裏我們主要用到的是requests.get()方法,這是獲取HTML網頁的主要方法,對應於HTTP的GET,requests.get()方法實際上就是模仿瀏覽器向服務器發送GET請求,並從服務器獲得數據。
下面以訪問筆趣看主頁爲例展示requests.get()方法的使用:
import requests #首先需要導入requests庫
target = 'https://www.biqukan.com/'#將筆趣看網址保存爲字符串變量
req = requests.get(url=target)#使用requests.get()方法獲取筆趣看網址主頁頁面內容
print(req.text)#以文本方式在屏幕上打印出來
運行結果如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>筆趣閣,新筆趣閣小說閱讀網,筆趣閣打不開就來 - 筆趣看小說網</title>
<meta name="keywords" content="筆趣閣,新筆趣閣" />
<meta name="description" content="筆趣閣是廣大書友比較喜歡的小說閱讀網,而筆趣看則是筆趣閣小說閱讀網的備份網站,收錄了當前最熱門、最火爆的小說,筆趣閣打不開就來筆趣看小說網!2016新筆趣閣歡迎收藏!" />
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta http-equiv="mobile-agent" content="format=html5; url=https://m.biqukan.com" />
<meta http-equiv="mobile-agent" content="format=xhtml; url=https://m.biqukan.com" />
<link href="/css/style.css" rel="stylesheet" type="text/css" />
<script src="/xxgg/common.js"></script>
至此。我們獲得了筆趣看主頁的HTML信息。
3 BeautifulSoup庫的使用
詳細使用方法請參閱官方中文教程地址:
URL:http://beautifulsoup.readthedocs.io/zh_CN/latest/
爬蟲的第一步,獲取整個網頁的HTML信息,我們已經完成。接下來就是爬蟲的第二步,解析HTML信息,提取我們感興趣的內容。
在google chrome瀏覽器中我們可以看到與requests.get()方法得到的相同的HTML信息,具體查看方法如下:
(1)首先打開開發者模式
(2)在開發者模式中找到感興趣的內容
(3)找到HTML網頁信息中的關鍵字
文章的所有內容都放在了一個名爲div的“東西下面”,這個”東西”就是html標籤。HTML標籤是HTML語言中最基本的單位,HTML標籤是HTML最重要的組成部分。
關鍵字部分:
<div id="content", class="showtxt">
根據關鍵字部分,我們就可以使用Beautiful Soup提取我們想要的內容了,編寫代碼如下:
import requests
from bs4 import BeautifulSoup
target = 'https://www.biqukan.com/1_1094/5403177.html'
req = requests.get(url=target)
html = req.text
soup = BeautifulSoup(html, 'html.parser')
texts = soup.select('.showtxt')//根據關鍵字中的class,應用BeautifulSoup的select()方法可以得到小說正文的內容。
print(texts[0].text.replace(' ', '\n').replace('\xa0'*8, '\n'))
得到結果如下:
正文內容已經被抓取並且打印在輸出中。
三 整合代碼
這部分有空再填坑吧,哈哈哈