爬虫简易说明

cnblogs 2024-08-07 08:09:12 阅读 96

想必大家都了解爬虫,也就是爬取网页你所需要的信息

相比于网页繁多的爬虫教程,本篇主要将爬虫分为四个部分,以便你清楚,代码的功能以及使用,这四部分分别为

    <li>

    1.获取到源代码

  • 2.根据网页中的标签特征,获取源代码你所需要的部分

  • 3.想一下如何根据页面的逻辑将一系列的网页自动化抓取

  • 4.保存数据在xlsx等格式下

接下来说一下每一步的操作

1.获取源代码

现在有很多库来获取,不过现在普遍使用的是requests,我也是用它

导入方式为

<code>import requests

这一部分很简单就一行代码

response = requests.get(url, params = params , headers = headers)

url就是页面的url,网址

params就是查询参数,可选

headers就是页面的请求头,也是可选,不过现在可以必过简易的反爬,主要要有user_agent和cookies

2.根据网页特征获取

这里我用到了BeautifulSoup

导入方式为

from bs4 import BeautifulSoup

具体使用就是

soup = BeautifulSoup(directory, 'html.parser')

其中'html.parser',它是 Python 内置的解析器,用于解析普通的 HTML 文档。

作用为:首先将html 变量中的 HTML 内容解析为一个 BeautifulSoup 对象 soup,使得后续可以利用 BeautifulSoup 提供的方法来方便地遍历和操作 HTML 文档的各个部分。

至于筛选标签,我主要我是使用了BeautifulSoup中的find和find_all两个函数,是用于查找符合指定标签名和属性条件的元素,这两个函数是有一定的区别的。

find用于查找文档中符合指定条件的第一个元素

find_all用于查找文档中符合条件的所有元素,并返回一个列表

举个例子

first_span = soup.find('span', class_='fl')code>

这里用find方法查找了第一个 标签,且其 class 属性为 'fl'。

span_list = soup.find_all('span', class_='fl')code>

这里用find_all 方法查找了所有 标签,且其 class 属性为 'fl' 的元素,将它们存储在 span_list 列表中。

3.自动化抓取

这一部分,得具体网页具体分析了

如一些页面的选择上,如?p=s这一些逻辑,将其写入脚本中,以实现自动化

https://www.xxx.html?p=s

4.保存数据

这部分用到了openpyxl库

导入方式:

from openpyxl import Workbook

首先看一下一下的代码

def create_execl(name):

wb = Workbook()

ws = wb.active

ws.title = name

excel_headers = ["疾病信息", "问诊类型", "病例url", "医生url", "医生简介", "医生擅长", "医生服务质量", "医生建议", "医生与患者交流"]

ws.append(excel_headers)

wb.save(name+".xlsx")

def write_back_execl(data, name):

wb = load_workbook(name+".xlsx")

ws = wb.active

ws.append(data)

wb.save(name+".xlsx")

然后我来对大家逐行解析

首先函数create_excel(name)是创建一个名为 name的Excel 文件,并写入表头信息。

1.wb = Workbook():创建一个新的 Workbook 对象,即一个新的 Excel 文件。

2.ws = wb.active:获取当前活动的工作表对象,这是一个 Worksheet 对象。

3.ws.title = name:将当前工作表的名称设置为传入的 name 参数。

4.excel_headers:定义了 Excel 表头的字段,包括 "疾病信息"、"问诊类型" 等。

5.ws.append(excel_headers):将表头信息添加到第一行。

6.wb.save(name+".xlsx"):保存 Excel 文件,文件名为 name.xlsx,这里的 name 是函数的参数。

函数write_back_excel(data, name),是用于向已存在的 Excel 文件中写入数据。

1.wb = load_workbook(name+".xlsx"):使用 load_workbook 函数加载已存在的 Excel 文件,文件名为 name.xlsx。

2.ws = wb.active:获取当前活动的工作表对象。

3.ws.append(data):将数据 data 追加到当前工作表的最后一行。

4.wb.save(name+".xlsx"):保存修改后的 Excel 文件。

反爬

除了基础代码外,我们还得了解一些反爬的技术

  • 1.构造请求头

  • 2.设置爬取时间间隙

  • 3.多设立几个账号

以上爬虫简易思路,希望对你们有帮助



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。