AutoScraper——爬虫神器

news2024/11/17 6:42:32

AutoScraper是一个自动化的爬虫工具,非常智能,而且使用简单便捷。AutoScraper 是使用 Python 实现的 Web 爬虫,兼容 Python 3,能快速且智能获取指定网站上的数据,在github上具有4.8K⭐️。github链接:https://github.com/alirezamika/autoscraper。
AutoScraper适合爬取反爬机制不强的页面,可以有效爬取数据。
下面开始介绍AutoScraper的使用过程。

1 安装

#autoscraper支持使用python3

# ①使用 pip 从 git 仓库安装最新版本 
# pip install git+https://github.com/alirezamika/autoscraper.git

#②从PyPI安装(推荐)
#pip install autoscraper

#③下载源码安装
#python setup.py install

2 AutoScraper使用

我对AutoScraper用法进行分类,并进行实际实现,以链家二手房信息为例,读者可自行学习修改即可。

2.1 单信息抓取

from autoscraper import AutoScraper  #导入

# 爬取的网址
url = 'https://bj.lianjia.com/ershoufang/'

# 输入想抓取的标题信息,此处以二手房发布信息标题为例
wanted_list = ["西山枫林一二期南排高楼层南北通透四居室"]  #随便找一个当前页面的标题

#创建AutoScraper对象
scraper = AutoScraper()

#建立爬虫,并进行信息爬取
result = scraper.build(url, wanted_list)
print('结果数量:',len(result))  #返回结果数量与当前页面标题数量一致
print('返回结果:',result)

在这里插入图片描述

2.2 多信息抓取

2.2.1 第一种方法

from autoscraper import AutoScraper  #导入

# 爬取的网址
url = 'https://bj.lianjia.com/ershoufang/'

# 输入想抓取的标题信息,此处以二手房发布信息标题和价格为例
wanted_list = ["西山枫林一二期南排高楼层南北通透四居室","745万"]

#创建AutoScraper对象
scraper = AutoScraper()

#建立爬虫,并进行信息爬取
result = scraper.build(url, wanted_list)
print("爬取结果:",result) #先返回全部的标题信息,再返回价格信息

在这里插入图片描述
这种方法爬取多标题信息,不容易对齐,因此介绍第二种方法。

2.2.2 第二种方法

from autoscraper import AutoScraper  #导入

## 爬取的网址
url = 'https://bj.lianjia.com/ershoufang/'

# 输入想抓取的标题信息,此处以二手房发布信息标题和价格为例
wanted_dict = {'title': ["有燃气正规一居室,户型好,格局方正"], 
               'price': ['398万']}

#创建AutoScraper对象
scraper = AutoScraper()

#建立爬虫,并进行信息爬取
scraper.build(url=url, wanted_dict=wanted_dict)
result = scraper.get_result_similar(url=url, grouped=True) #抓取相似数据,参数grouped设置返回结果是字典形式,默认是False。
print('返回结果:')
print(result)  #返回结果中rule_m3wz,rule_sgqv是规则名称,有可能同一种信息使用多种规则返回,选择其一即可。

在这里插入图片描述
将多种不同的返回结果分开方便利用DataFrame进行存储。

2.3 多页面抓取

当需要抓取多个页面,每个页面的布局相同,则爬取规则相同,保存设计的规则,然后应用到其它页面即可。

import pandas as pd
from autoscraper import AutoScraper  #导入

## 爬取的网址
url = 'https://bj.lianjia.com/ershoufang/'

# 输入想抓取的标题信息,此处以二手房发布信息标题和价格为例
wanted_dict = {'title': ["有燃气正规一居室,户型好,格局方正"], 
               'price': ['398万']}

#创建AutoScraper对象
scraper = AutoScraper()

#建立爬虫,并进行信息爬取
scraper.build(url=url, wanted_dict=wanted_dict)
result = scraper.get_result_similar(url=url, grouped=True) 
print("规则名称:",result.keys())
#返回结果中规则名称是随机生成的,一定注意,由于布局相同,所以其它页面的规则相同

#规则保存
scraper.keep_rules(['rule_4alo', 'rule_xt47']) #当一个标题给出多个规则时,选择一个规则
scraper.save('lianjie_rule')

#加载规则
lianjia_scraper = None
lianjia_scraper = AutoScraper()
lianjia_scraper.load('lianjie_rule')

df = pd.DataFrame()
#爬取多个页面
for n in range(1, 5):
    url_template = f'https://bj.lianjia.com/ershoufang/pg1/{n}'
    result = lianjia_scraper.get_result_similar(url=url_template, group_by_alias=True)
    df = pd.concat([df, pd.DataFrame(result)])
print("返回结果:")
print(df)

在这里插入图片描述
在这里插入图片描述
AutoScraper还有一些其它的细节,比如可以使用get_result_exact进行爬取等,详细信息可参考autoscraper-examples.md。
如果有读者想要详细了解AutoScraper具体的代码,可以留言告知,作者将会出一期代码解读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/149915.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有哪些你看了以后大呼过瘾的计算机书籍?

推荐几本让程序员们爱不释手的经典书。 1、代码整洁之道 鲍勃大叔作品,程序员,汇聚编程数十年编程生涯的心得体会,阐释如何解决软件开发人员、项目经理及软件项目领导们所面临的棘手的问题。 本书提出一种观点:代码质量与其整洁…

Qt+C/C++文章小说人物关系分析

程序示例精选 QtC文章小说人物关系分析 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC/C文章小说人物关系分析>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易…

浅谈未来跨境电商发展的新趋势?

从21世纪初&#xff0c;互联网在我国应运而生&#xff0c;并且在国家政策的倾斜和互联网的渗透下&#xff0c;结合互联网商业巨头对全球互联网产业的优化布局&#xff0c;互联网技术逐渐得到完善&#xff0c;伴随着近年来直播带货以及互联网电商的加持&#xff0c;我国的线上购…

Crack:dhtmlx JavaScript UI Libraries 商业企业版

dhtmlx JavaScript UI Libraries 企业版 包含Ω578867473&#xff1a; JS Gantt Chart JS Scheduler JS UI Widgets Library JS Diagram Library JS Kanban Board JS To Do List JS Event Calendar JS Spreadsheet JS Pivot Table JS File Uploader JS Rich Text Editor Gantt…

家庭库存管理系统Homebox

本文完成于 2022 年的 10 月&#xff0c; 最近正好有网友在找这方面的软件&#xff0c;就给翻出来了&#xff1b;Homebox 通过存储位置和标签两个维度来管理物品&#xff0c;非常简单易用&#xff0c;希望能满足要求&#xff1b; 什么是 Homebox &#xff1f; Homebox 是一个自…

TensorFlow和PyTorch的实际应用比较

TensorFlow和PyTorch是两个最受欢迎的开源深度学习框架&#xff0c;这两个框架都为构建和训练深度学习模型提供了广泛的功能&#xff0c;并已被研发社区广泛采用。但是作为用户&#xff0c;我们一直想知道哪种框架最适合我们自己特定项目&#xff0c;所以在本文与其他文章的特性…

我阳了,一针疫苗未打

12月31日凌晨两点&#xff0c;我被热醒&#xff0c;浑身湿透。身体发出强烈信号&#xff0c;本能地催促我赶紧喝水&#xff0c;再不喝&#xff0c;要炸。毫不犹豫地&#xff0c;我走进厨房&#xff0c;摁下电水壶&#xff0c;1.5L 水&#xff0c;90度。几杯水下肚&#xff0c;身…

2020年MathorCup高校数学建模挑战赛—大数据竞赛B题遥感图像地块分割与提取求解全过程文档及程序

2020年MathorCup高校数学建模挑战赛—大数据竞赛 B题 遥感图像地块分割与提取 原题再现&#xff1a; 耕地的数量和质量是保持农业可持续发展的关键&#xff0c;利用卫星遥感影像可以识别并提取耕地&#xff0c;并对耕地进行遥感制图&#xff0c;准确的耕地分布能够为国家决策…

聚观早报 | 蚂蚁集团调整股东结构;「快看点」2 月 6 日终止运营

点击蓝字 / 关注我们 今日要闻&#xff1a;蚂蚁集团调整股东结构&#xff1b;「快看点」2 月 6 日终止运营&#xff1b;Google 同意为隐私问题进行赔偿&#xff1b;苹果已取消 iPhone SE 4 发布&#xff1b;Lightyear 2 太阳能汽车发布 蚂蚁集团调整股东结构1 月 7 日&#xf…

从0到1完成一个Vue后台管理项目(八、Menu改造完善、子组件创建、配置路由)

往期 从0到1完成一个Vue后台管理项目&#xff08;一、创建项目&#xff09; 从0到1完成一个Vue后台管理项目&#xff08;二、使用element-ui&#xff09; 从0到1完成一个Vue后台管理项目&#xff08;三、使用SCSS/LESS&#xff0c;安装图标库&#xff09; 从0到1完成一个Vu…

javaweb-拦截器与监听器FilterListener

Filter&Listener 1&#xff0c;Filter 1.1 Filter概述 Filter 表示过滤器&#xff0c;是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求拦截下来&#xff0c;从而实现一些特殊的功能。 如下图所示&#xff0c;浏览器可以访问服务器上的…

mybatisPlus3.5.2在NOT_NULL更新策略下自定义Mapper实现更新null值

版本 当前使用的mybatis plus版本如下 mybatis-plus-3.5.2.jar 默认更新配置 在这个更新策略下&#xff0c;调用mybatis基础的updateById等更新方法的时候会因为xml中的判断条件而更新不了null值&#xff0c;此时又不想修改全局的配置策略。 mybatis plus提供了 com.baomid…

LeetCode091之解码方法(相关话题:动态规划)

题目描述 一条包含字母 A-Z 的消息通过以下映射进行了 编码 &#xff1a; A -> "1" B -> "2" ... Z -> "26" 要 解码 已编码的消息&#xff0c;所有数字必须基于上述映射的方法&#xff0c;反向映射回字母&#xff08;可能有多种方法…

蓝奥声灯光联动在行业中的技术优势

随着科学技术的发展和人民生活水平的提高&#xff0c;人们对生活或工作的照明系统提出了新的要求&#xff0c;智能照明系统替代传统照明系统是家居智能化过程中必然要走的一步&#xff0c;传统的家居照明控制方式一般是通过电路中的开关来控制电路的导通与关断&#xff0c;开关…

【设计模式】我终于读懂了组合模式。。。

文章目录♈️学校院系展示需求♉️传统方案解决学校院系展示(类图)♐️传统方案解决学校院系展示存在的问题分析♊️组合模式基本介绍♋️组合模式原理类图♌️对原理结构图的说明-即(组合模式的角色及职责)♍️组合模式解决学校院系展示的 应用实例♎️接下来我们Debug下去看一…

【Python】搭建虚拟环境

目录 前言 虚拟环境简介 虚拟环境依赖模块的安装 1、安装好Python环境 2、安装第三方库&#xff08;虚拟环境库&#xff09; 3、 安装第三方模块virtualenvwrapper-win 为虚拟环境配置环境变量 1、配置环境变量 2、点击环境变量 3、在系统变量中&#xff0c;点击新建 …

TOOM网络舆情监控系统定制开发,舆情监控开源系统源码有哪些?

软件系统定制开发是指为满足客户特定业务需求而进行的软件系统开发工作。这通常涉及到对现有软件系统进行修改或开发新的软件系统来满足客户的特定要求。软件系统定制开发可以帮助客户解决其特定的业务问题&#xff0c;并为客户带来独特的竞争优势。TOOM网络舆情监控系统定制开…

安装龙蜥或CentOS 7时出现dracut- initqueue timeout解决方法

在安装龙蜥7.9操作系统时&#xff0c;出现dracut- initqueue timeout-starting…starting timeout scripts报错CentOS 7.9出现此问题也可以参考同样的方法如何制作启动盘和系统盘设置raid就不再赘述了&#xff0c;相关文档社区已经很多了&#xff0c;这里直接入正题一、问题描述…

自己搞个chatgpt机器人

chargpt确实越来越火了&#xff0c;目前来看很多文章都教大家如何去注册chatgpt&#xff0c;并且详细的科普了很多chatgpt种种神奇之处。我实际使用之后&#xff0c;确实也感觉非常奈斯。这里看到很多人用那个go环境的去对接个人微信&#xff0c;因此萌生了做个其他版本的想法。…

2022.12青少年软件编程(Python)等级考试试卷(一级)

2022.12青少年软件编程(Python)等级考试试卷(一级) 一、单选题(共25题,共50分) 1.关于Python语言的注释,以下选项中描述错误的是?( C ) A. Python语言有两种注释方式:单行注释和多行注释 B. Python语言的单行注释以#开头 C. Python多行注释使用###来做为标记 D. …