爬虫步骤

导入必要的库

首先,我们根据所要爬取的内容或自身需求,导入必须的库:

urllib  #Python3自带的请求库,也是Python爬虫中最简单最基础的库。
requests  #属于第三方请求库,使用起来比urllib要简单不少,且功能更加强大,是最常用的请求库。
Selenium  #属于第三方请求库,它是一个自动化测试工具,可以利用它自动完成浏览器的操作,如点击,下拉,拖拽等。
Beautiful Soup  #属于第三方解析库,可将HTML和XML文档解析为树结构,是最常用的解析库。
lxml  #属于第三方解析库,支持HTML和XML的解析,支持XPath的解析方式。
Xpath #属于第三方解析库,顾名思义即为Xml路径语言,跟Beautiful Soup一样都是用来解析页面内容的工具,但使用方式有所不同。
pdfminer  #属于第三方解析库,主要针对于解析PDF文件,是一个可以从PDF文档中提取信息的工具。

爬虫框架

发送http请求 + 检查http请求 + 解析HTML内容 + 筛选具体内容

def 函数名称(url): #定义爬虫函数,url代表从给定的网址链接获取网页内容

    response = requests.get(url)  # 发送http请求

    response.encoding = 'utf-8'  # 指定编码为UTF-8
    
    if response.status_code != 200: # 通过if函数检查请求是否成功,成功的状态码为200
        print(f"获取 {url} 失败。 状态码: {response.status_code}") #若状态码不是成功的200,则输出请求失败的网址并附上失败状态码以供调整
        return [] #请求失败将返回一个空列表,表示没有获取到任何数据

    soup = BeautifulSoup(response.text, 'html.parser') #通过Beautiful Soup解析HTML内容,提供一个text形式的‘requests.get(url)’内容
    #'html.parser'是Python标准库中的一个内置解析器,它不需要额外安装依赖项
    
    内容列表 = [] #设定一个空列表用来装爬取的内容
    for div in soup.find_all('div', class_='属性'):  #for-循环 + soup-筛选大范围 + find_all-查找所有 + class-属性 + div-块级标签
    #上述代码解释为:for循环在soup(前几行代码中已经被Beautiful Soup解析的HTML内容)中查找所有被指定的特定属性的块级标签
        for ul in div.find_all('ul'):  #在每个div中查找所有的ul标签
            for li in ul.find_all('li'):  #在每个ul中查找所有的li标签
                for i in li.find_all('i'):  #在每个li中查找所有的i标签
                    内容 = i.get_text(strip=True)  #将爬取到的i标签的text-文本内容输入到内容中,strip用来去除文本两端的空白字符
                    if 内容:  #通过if函数检验‘真假’,确保标题不为空,在python中,所有的非空字符串、非零数字、非空集合都被视为‘真’
                        内容列表.append(内容)  #如果内容为‘真’,则将内容添加到内容列表中
    return 内容列表  #返回已经处理好的内容列表

写入要爬取的网址

url = “网址”  #定义要爬取的网址

输出结果

通过格式化字符串(f-string)来输出变量值的方法。这种方式可以使输出更加直观和易读。

print(f"{内容列表}") #输出爬取的内容

爬虫反爬

time.sleep()是 Python 标准库 time 模块中的一个函数,用于暂停程序的执行一段时间(以秒为单位)。它通常用于模拟延迟、控制请求频率或避免对服务器造成过大压力等场景。

先通过语句导入time库:import time

    time.sleep(1)  #添加延迟,避免频繁请求,暂停1秒

tqwbester网站统治者