首先大家要学爬虫要知道爬虫是什么?能做什么?怎么学?
一、爬虫是什么?
- 以下是百度百科上对于网络爬虫的定义:
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 - 通俗的讲,爬虫就是能够自动访问互联网并将网站内容下载下来的的程序或脚本,类似一个机器人,能把别人网站的信息弄到自己的电脑上,再做一些过滤,筛选,归纳,整理,排序等等
- 再简单来说,是写一个蜘蛛Spider在织的网上爬动,并获取自己要的信息。
二、爬虫能做什么?
- 爬!取!数!据!
- 例如爬取点小说(本文例子就是剑来)、电影、美女帅哥图片、甚至是小黄片之类的。(——当然不能作为商业用途。毕竟也就有句话:爬虫学得好,监狱蹲的早)、
- 收集信息,这是个信息的时代,多一点信息就能抢占先机。
三、怎么学爬虫?
-
推荐学习思路方案,在实践中学,学的快也不会枯燥
-
作者灵感来自于网上一女博主爬了11个G帅哥照片,顿时仅为天人。作者也时不时爬爬小说看,兴趣爱好结合起来,这样学起来就不会枯燥了。
-
具体学习路子网上多的是,B站就很多。
四、爬虫具体例子:爬取小说剑来
4. 具体页面如图:剑来目录页面
2.我们再获得User-Agent
3、我们就可以写代码了!这里我们按照 大体思路来``
- 爬取网页
- 解析网页
- 存储数据
'''
写一个爬虫一般都需简单的几步
1、爬取数据:(本例用request)
2、解析数据:(本例子用xpath)
3、储存数据:(本例子直接用数据流)
'''
import requests
from lxml import etree
import re
savepath=".\\剑来.txt" #数据保存的地址.\\代表本目录下
url="https://www.52bqg.com/book_45912/" #笔趣阁小说网剑来目录网址
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
} #具体看自己的信息
def main():
content(url)
def content(url):
response=requests.get(url,headers=headers) #requests库方法get方式请求网站
text = response.content.decode('gbk') #用GBK解码(具体看网页的编码格式)爬取网页信息
#print(text)
html=etree.HTML(text) #用文本的方式解析,返回的一个列表
a_list=html.xpath('//div[@id="list"]/dl/dd/a/@href') #XPath解析,找到一个id叫list的div 在目录网址中获取具体每章的链接
for index in a_list: #for循环得出每一章网址
#具体每一章的网址
download_book(url+str(index)) #在笔趣阁网址后面加入每一章网址每一章都执行download_book()
def download_book(url):
response=requests.get(url,headers=headers)
text=response.content.decode('gbk')
#print(re)
html=etree.HTML(text)
#print(html)
timu=html.xpath('//div[@class="bookname"]/h1/text()') #获取每一章章节名,用text()获取文本
links=html.xpath('//div[@id="content"]/text()') #获取章节内容,用text()获取文本
savedata(savepath=savepath, msg=timu[0]) #保存章节名【0】只是找到第一个章节名就行了
for index in links:
print('\n')
savedata(savepath=savepath,msg=index) #执行savedata保存章节内容
print('\n\n')
#保存数据
def savedata(savepath,msg):
with open(savepath,'a',encoding='UTF-8')as f: #open打开流,用尾部追加('a')的方式储存
f.write(msg) #write写入
f.close() #关闭流
if __name__ == '__main__': #主函数入口
main()
print('下载完成:') #全部下完执行打印下载完成
Xpath学习我推荐菜鸟教程的学习文档菜鸟教程xpath