神码ai火车头采集器伪原创【php源码】

网络爬虫全流程教学,从入门到实战(+bs4+存储文件)
是一个第三方库,用于向URL地址发起请求
bs4 全名,是编写爬虫常用库之一,主要用来解析 html 标签 。
【神码ai火车头采集器伪原创【php源码】】一、爬虫编写过程解析 1.1 导入库文件(请求库、解析库)
#导入 requests请求库import requests#导入bs4解析库from bs4 import BeautifulSoup
1.2 发起对指定网页的请求
#对爬取网页的链接url='请求地址'#请求头(作用:为了不被对方发现是爬虫的访问)#去需要爬取网页上>打开开发者模式(F12)>网络(network)>随便点开一个文件>标头>请求头里的User-Agentheaders={'User-Agent': '请求头'}#发起get请求,获取请求内容,并用(utf-8)解码(编码一般是:utf-8,gbk,gb2312)html=requests.get(headers=headers,url=url).content.decode('utf-8')
1.3 解析为 bs4格式
#解析为bs4,BeautifulSoup(html文本,'解析器'),如下表soup=BeautifulSoup(html,'html.parser')
如果一段HTML或XML文档格式不正确的话,那么在不同的解析器中返回的结果可能是不一样的 。
解析器使用方法优势
标准库
(html, “html.”)
1、的内置标准库 2、执行速度适中 3、文档容错能力强
lxml HTML
(html, “lxml”)
1、速度快 2、文档容错能力强
lxml XML
(html, [“lxml”, “xml”]) (html, “xml”)
1、速度快 2、唯一支持XML的解析器
(html, “”)
1、最好的容错性 2、以浏览器的方式解析文档 3、生成HTML5格式的文档
1.4 解析获取的内容(获取想要的数据)
#获取想要的网页标签(如div)Tdiv=soup.find_all('div',class_="div的class样式名")#输出查找到的结构print(Tdiv)
1.5 存储爬取的数据
#格式with open('./文件路径/文件名.文件类型','权限') as f:f.write('字符型文本')
二、bs4核心函数
作用:获取,网页中的各个自己想要的标签,一般是从大标签到小标签的过程
操作案例百度
#导入库from bs4 import BeautifulSoupimport requests#百度的url地址url="https://www.baidu.com/"#请求头(作用:为了不被对方发现是爬虫的访问)hearders={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.53'}#获取百度的请求html=requests.get(url=url, headers=hearders).content.decode("utf-8")#解析为bs4soup = BeautifulSoup(html,"html.parser")
2.1 find()
查找符合条件的第一个标签,结果是标签对象
find( name , attrs/ ,,, ** )
soup.find(‘标签名’,属性名=“属性”/=“类名”,=“是否只要子节点(默认False)”,=“标签内容”)
参数可以任意组合或只填写一个
①根据标签名定位第一个指定的标签
#查询出第一个p标签对象,并输出print(soup.find('p'))#查询出第一个a标签对象,并输出print(soup.find('a'))

神码ai火车头采集器伪原创【php源码】

文章插图
②根据属性名定位满足条件的第一个标签
#查询class属性为’s-top-wrap s-isindex-wrap‘的任意标签print(soup.find_all(class_='s-top-wrap s-isindex-wrap'))#查询id属性为s_top_wrap的所有标签,其他属性名照写print(soup.find_all(id='s_top_wrap'))