第一个python小爬虫

  • Lanceloft
  • 4 Minutes
  • July 10, 2018

开头介绍

  最近工作任务比较少, 所以就看了下爬虫的教程, 对于一个前端学爬虫最大的优势已经学会了审查元素寻找分析数据的过程, 基本上只要看一下代码就大概了解了整个思路. 爬虫就是模拟用户操作然后获取相关数据并方便做一个分析, 这里先以第一个简单的python爬虫为例子. 使用python做爬虫最大优势就是很多库非常方便使用基本上只要引用下就能实现大部分功能. 这里以爬取笔趣看小说网为例子.

安装依赖

python2和python3互不相通, mac默认已经安装python2, 但是毕竟3是未来主流, 这里使用python3进行开发.我们通过homebrew来进行安装python3, 首先是需要安装xcode, 但是一般默认已经安装完,这里开始安装homebrew. 如果已经安装了homebrew的用户可以忽略相关.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后利用homebrew安装python3

brew install python3

在终端输出查看版本

$python3 --version
 Python 3.6.5

我这里是使用了3.6.5的版本, 同时这里利用pip安装依赖也是需要使用pip3 install来安装python3对应的库.

安装requests库

pip3 install requests

安装beautifulsoup4库

pip3 install beautifulsoup4

分析网站

这里以笔趣看小说网为例子, 我们要抓取万古神帝第一章的数据: http://www.biqukan.com/0_658/162124.html

biqukan

打开检查可以进行元素审查, 我们只要把html以文本格式进行保存, 然后通过找到对应节点的的文本进行筛选就可以找到本章节的内容.

1
2
3
4
5
6
7
8
9
10
11
# -*- coding:UTF-8 -*-
from bs4 import BeautifulSoup
import requests

if __name__ == "__main__":
target = 'http://www.biqukan.com/0_658/162124.html'
req = requests.get(url = target)
html = req.content
bf = BeautifulSoup(html, "lxml")
texts = bf.find_all('div', class_ = 'showtxt')
print(texts[0].text.replace('\xa0'*8,'\n\n'))

这里对代码进行简单分析, if __name__ == "__main__" 这里充当的程序入口的意思, 运行此段代码时经过这里作为入口再执行其余, 当一段代码里面包含其他python模块而又不想其他模块被执行了时就需要用到.
http://blog.konghy.cn/2017/04/24/python-entry-program/ 这里的介绍就比较详细.

然后利用requests这个库来进行模拟请求, 获取的html利用BeautifulSoup这个库进行整理, 用处是可以方便进行节点的查询而反馈的并不只是一堆文本标签. 我们通过审查已经看到小说章节的内容都在class为showtxt的div里面, 所以直接从所有div里面寻找到class位showtxt的内容, 进行输出.

这里我们把代码保存为test.py, 然后在终端执行python3 test.py既可以在终端看到对应章节内容, 第一个简单的爬虫就实现了. 接下来来进行更常用的, 微信公众号的文章标题, 阅读量的获取.

![success](https://blog-1251625630.cos.ap-guangzhou.myqcloud.com/20180710/success.jpg