Python笔记——爬虫准备
爬虫前的准备:
下载库文件包:requests bs4(BeautifulSoup)
解析工具:lxml html5lib
下载分词工具:wordcloud
怎么使用:将对应版本镜像放在scripts里面,利用命令进入这个路径中
linux: 敲命令的时候 在所在的路径中如果确定存在 根据你的记忆 word+tab(自动补充)
pip install 版本镜像(文件存在 使用tab 进行全名补充)
你是先打开的cmd,进入了对应文件路径,你再导入文件
复制名字(带文件名后缀)
https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 镜像网址 之后我们还会用到
jieba
词云的生成
数据分析:其实对编程和代码的逻辑没有很强(要求没有Java那么强)
其实就是利用python的库文件对周边工具或者周边数据进行处理
最终我们在数据中得到一些有价值的结论工作
爬虫知识:
初学:主要就是学习requests和BS的使用,并且利用对应的解析器进行标签的结构处理
第一步:导包
第二步:介绍:我们的所谓的网络,统称为万维网(www),将一个可以移动的程序看成了一个类似于网络虫子的东西
爬虫(一段程序去请求服务器,去获取对应服务器的数据)
(脚本/外挂):可以使一些方法变得快速而且简单的程序叫做脚本/使一些方法超越了一些限制,实现了几乎不可能完成的事情,辅助的东西就叫做脚本
第三步:
利用工具实现爬虫访问
requests:模拟浏览器发出的请求(http),访问所在网页的服务器,获取服务器的网页结构、数据、图片、文件
json
bs:如果请求到了一些数据的集合结构等,通过bs进行解析结构
lxml(解析器):利用解析器进行解析
第四步:
会出现IP被封掉的情况,XXX链接主机关闭了,出现错误10061 10053,千万不能进行违法行为
第五步:
实现一个简单的DEMO,选定一个目标网站
"""
import requests
from bs4import BeautifulSoup
import lxml
# 1.选定一个目标路径
url ='https://*****.html'
# 2.发起请求(http) 请求方式(7种 get/post)
# get:显式请求,可以看到请求的参数以及请求的数据,但是地址栏有大小的限制
# post:隐式请求,不知可以看到请求的参数和数据,地址栏没有大小限制
response = requests.get(url=url)
# 3.查看请求是否成功 状态码:404(找不到路径) 200 305 300 500(页面代码错误) 405(请求方式错误)
print('状态码:',response.status_code)
# 4.查看下编码 === 防止乱码 就要设置与请求的页面相同的编码
# print(response.encoding) #目前浏览器的请求编码
response.encoding ='gbk'
# print(response.encoding)
# 5.将成功请求的页面转成html(可以进行打印的结构) text(针对文本的字符流) content(字节流图片)
html = response.text
# print(html)
#6.对html进行解析
soup = BeautifulSoup(html,'lxml')
# 7.通过解析器产生的对象进行对标签中数据的提取(小说文章的提取)
# find()找到第一个出现的标签 find_all(找到全部出现的标签) find(attrs={'id':'name','class':'age'})
# 控制选择器的方法 select()找到全部为该选择器属性的标签 select_one()找到一个为该选择器属性的标签
soup_text = soup.find_all('div',class_='showtxt')
texts = soup_text[0].text#将里面的文本内容逐条拿出来
# 8.去除空格和空行 正则表达式
texts = texts.replace("'\xa0'*8",'\n\n')#替换文本
# 9.下载
file =open('***.txt','w',encoding='utf-8',newline='')
# 10.写入
file.write(texts)
# 11.关闭文件流
file.close()
print('下载成功')