通过老师给的资料先自行学习Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析_哔哩哔哩_bilibili
爬虫主要分为以下几个流程。
(1)发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,然后等待服务器响应。
(2)获取响应内容:如果服务器能正常响应,我们会得到一个Response,Response的内容便是所要获取的内容,类型可能有HTML、Json字符串,二进制数据(图片,视频等)等类型。
(3)解析内容:得到的内容可能是HTML,可以使用正则表达式,网页解析库进行解析。也可能是Json,可以直接转为Json对象解析。可能是二进制数据,可以做保存或者进一步处理。
(4)保存数据:保存的方式可以是把数据存为文本,也可以把数据保存到数据库,或者保存为特定的jpg,mp4 等格式的文件。
1.1前期准备
其次,我们使用机器模仿人的操作,所以需要“伪装”,在开发者模式下,找到浏览器的头文件,进行爬虫的伪装,伪装之后向网页发送Request。
head = { # 模拟浏览器头部信息,向豆瓣服务器发送信息
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"
}
然后通过Beautifulsoup解析网页代码,但这些网页都是代码,为了便于人们阅读,因此爬虫爬取的网页都是代码,我们需要使用特定的方式解析。
1.2BeautifulSoup
Python的网页解析可以用正则表达式去完成,那么我们在写的时候,要挨个的去把代码拿出来匹配,而且还要写匹配的规则,整体实现起来就很复杂。BeautifulSoup呢,它是一个方便的网页解析库,处理高效,支持多种解析器。大部分情况下,利用它我们不在需要编写正则表达式就可以方便的实现网页信息的提取。有了它我们可以很方便地提取出HTML或XML标签中的内容。
测试是否安装好,测试代码:
import requests
r=requests.get("https://item.jd.com/100000822955.html#crumb-wrap")
demo=r.text
from bs4 import BeautifulSoup
soup=BeautifulSoup(demo,"html.parser")
print(soup.prettify())#prettify()它的作用就是使解析出来的html程序“每逢标签,自动换行”可以对程序起到很好的作用辅助
1.3将爬取的信息存储到本地
之前我们都是将爬取的数据直接打印到了控制台上,这样显然不利于我们对数据的分析利用,也不利于保存,所以现在就来看一下如何将爬取的数据存储到本地硬盘。
1.对txt文件的操作
读写文件是最常见的操作之一,python3 内置了读写文件的函数:
open
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None,closefd=True, open