随笔分类 - 网络爬虫
摘要:1. 正则表达式概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 许多程序设计语言都支持正则表达式进行字符串操作,并不是python独有,python的re模块提供了对正则表
阅读全文
摘要:1. concurrent.futures库简介 python标准库为我们提供了threading和mutiprocessing模块实现异步多线程/多进程功能。从python3.2版本开始,标准库又为我们提供了concurrent.futures模块来实现线程池和进程池功能,实现了对threadin
阅读全文
摘要:1. requests库简介 官方中文文档:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP
阅读全文
摘要:1. urllib库全局内容 官方文档地址:https://docs.python.org/3/library/urllib.html urllib库是python的内置HTTP请求库,包含以下各个模块内容: (1)urllib.request:请求模块 (2)urllib.error:异常处理模块
阅读全文
摘要:根据联合国网站可访问性审计报告,73%的主流网站都在其重要功能中依赖JavaScript。和单页面应用的简单表单事件不通,使用JavaScript时,不再是加载后立即下载所有页面内容。这样会造成许多网页在浏览其中展示的内容不会出现在HTML源码中,针对于这种依赖于JavaScript的动态网站,我们
阅读全文
摘要:Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。 Scrapy 使用了 Twisted异步网络框架来处理网络通讯,可以加快我们的下载速度,
阅读全文
摘要:scrapy全局命令 要想了解在scrapy中由哪些全局命令,可以在不进入scrapy爬虫项目目录的情况下运行scrapy -h (1) fetch命令 fetch命令主要用来显示爬虫爬取的过程,如果在scrapy项目目录之外使用该命令,则会调用scrapy默认的爬虫来进行网页的爬取,如果在scra
阅读全文
摘要:item设置 item是保存爬取到的数据的容器,其使用方式和字典类似,并且提供了额外保护机制来避免拼写错误导致的未定义字段错误,定义类型为scrapy.Field的类属性来定义一个item,可以根据自己的需要在items.py文件中编辑相应的item item提取 首先回顾下创建的爬虫模块count
阅读全文
摘要:scrapy库安装 使用pip命令安装scrapy,在安装过程中可能会因为缺少依赖库而报错,根据报错提示依次下载需要的依赖库,下载过程中注意系统类型和Python版本 我在安装过程中依次安装的库有: pip install pywin32-223-cp36-cp36m-win32.whl pip i
阅读全文
摘要:1. 检查robots.txt 大多数网站都会定义一robots.txt文件,这样可以了解爬取该网站时存在哪些限制,在爬取之前检查robots.txt文件这一宝贵资源可以最小化爬虫被封禁的可能,而且还能发现和网站结构相关的线索。 输入http://example.webscraping.com/ro
阅读全文
摘要:xpath表达式格式 xpath通过"路径表达式"来选择节点,在表现形式上与传统的文件系统类似 绝对路径(absolute path)必须用"/"起首,后面紧跟根节点,比如/step/step/... 相对路径(relative path)则是除了绝对路径以外的其他写法,比如 step/step,也
阅读全文
摘要:选择器(selector)是CSS中的重要概念,用于对HTML元素的查找和控制。由于Selenium学习需求特对选择器相关知识进行学习和总结,方便以后查阅。 基本选择器 基本选择器是jQuery中最常用的选择器,通过元素id、class和标签名等来查找元素 层次选择器 通过元素之间的层次关系来获取特
阅读全文