一 工具准备
我用的是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'))
得到结果如下:
正文内容已经被抓取并且打印在输出中。
三 整合代码
这部分有空再填坑吧,哈哈哈