爬虫学习记录(持续更新)
1、爬虫:以前对爬虫的理解非常浅显,只是知道爬虫是一门非常高超的技术,甚至有点被它的神秘吓到。但是随着自己对计算机方面的深入学习,掌握了一些代码知识后,然后了解了爬虫的真实面目。(网络爬虫被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
2、学爬虫之前需要准备的东西:
(1)工具:Python,原因是python是偏工具型的语言,里面包含大量的实用函数给我们调用(有直接访问网页的库函数)。语言简洁,易懂。
(2)对python中涉及到爬虫的库有一定的了解(譬如beautifulsoup模板,re正则表达式,request函数,字符串的处理)
(3)制作爬虫的最终目就是去用写出来的程序去批量地,高效的,快速的获取到网页源代码中有价值的数据和信息。因此,必须对.html文件的结构(包括css,URL,JavaScript)进行学习。做到能看懂网页源代码表达的意思并且进行分析,才能够去面对不同的爬取场景制作出不同的爬虫。
3、爬虫的架构:
调度器:
URL管理器:管理待抓取url集合和已抓取的URL集合
网页下载器:将互联网上url对应的网页下载到本地的工具
网页解析器:对下载的网页提取有价值的信息并进行产生新的URL集合
应用层面:
1.把提取的数据格式化输出,可用相应的工具对数据进行分析
2.从网上批量获取音频文件
。。。
4、设计一个实例爬虫基本的思路:
5、正则表达式
Rocky的博客
http://blog.sina.com.cn/u/2707072361
6、Beautiful Soup4.2.0
beautiful soup查询:
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#id37
7、requests模块
requests模块查询:
https://www.cnblogs.com/ranxf/p/7808537.html
8、制作一个简单的“千千音乐”的爬虫
代码实现:
import re
import pprint
import requests
songids_url = 'http://music.taihe.com/artist/83632' #千千音乐中网址批量下载,替换“83632”就行!每个歌手的主页url前面的字符都相同,后面的数字改变而已!
response = requests.get(songids_url)
response.encoding = response.apparent_encoding
html = response.text
songids = set(re.findall('a href="/song/(.*?)"',html)) #用正则表达式提取出当前网页所有的关键soongid字符串
for songid in songids:
url_api = 'https://musicapi.taihe.com/v1/restserver/ting?method=baidu.ting.song.playAAC&format=json&songid={}'.format(songid)
response = requests.get(url_api) #单首下载,替换歌曲id即可
data = response.json() #返回json字典型
file_link = data['bitrate']['file_link'] #通过key查找对应的value
title = data['songinfo']['title']
print(file_link,title)
response = requests.get(file_link)
with open(title+'.m4a','wb') as f:
f.write(response.content)
# response.text 返回的是一个 unicode 型的文本数据
# response.content 返回的是 bytes 型的二进制数据
# 也就是说如果想取文本数据可以通过response.text 如果想取图片,文件,则可以通过 response.content
9、