python selenium采集速卖通_2.不苟的爬虫小教程系列:python爬虫技术栈介绍

鉴于爬虫初学者们,往往也是编程的初学者,我在这里介绍一套最常用的技术栈,不求多,只求精。

毕竟我们的目标是采集到数据,只要能够成功实现目标的工具就是好工具。

  1. 爬虫框架scrapy:该框架是scrapinghub公司开发并开源的,经历过时间的检验,好用,性能佳。
  2. http请求库requests:requests官方是这样介绍这个库的:“Requests 是个为Python而写的优雅又简单的HTTP库”我们可以在爬虫代码开发过程中使用这个库进行调试,甚至一些简单的爬虫完全可以只用requests来实现。
  3. http请求curl:说起调试爬虫,就一定得提到curl,这个工具非常好用。在chrome中可以一键生成某个请求的curl命令,然后修改参数以调试可验证接口可接受参数的范围。

一个爬虫所需要的工具就这么多了。除了上面介绍的这些,你可能还需要一台电脑和一根网线。

在本教程中,不会过多涉及存储。你完全可以将采集回来的数据以任何你认为方便的方式存储。如果你不太会使用数据库的话,直接用文件存储也可以。


如果你还想了解更多的话,可以看看下面这些工具。

  1. urllib3:其实还有urllib和urllib2,是比较底层的原生http请求库。如果你没有直接使用过它们,那说明你不需要学习它们。
  2. grab:另一个爬虫框架,并非python爬虫业界主流。有兴趣可以读读源码。
  3. asyncio:py3中的一个异步协程库。
  4. aiohttp:基于asyncio实现的一个异步协程http请求库。
  5. pyspider:爬虫专家binux业余开发的一套爬虫框架,带UI展示。但是维护不频繁,也不如scrapy好用。大家有空可以读读源码学习一下,不推荐工业使用。

模拟浏览器:

  1. 以前常用技术栈有selenium+phatomjs,其中selenium是个自动化测试框架,phatomjs是个无界面浏览器,但phatomjs已经停止开发了。
  2. 目前更为常用的方案应该是selenium+chrome headless,或是pyppeteer跟splash。
  3. chrome headless就是chrome浏览器的无界面版本,我们将在后续文章中着重介绍。
  4. pyppeteer则是基于puppeteer进行封装的另一个chrome headless自动化测试框架。
  5. splash则是scrapinghub公司研发的,比较适合只对js进行渲染,而不进行点击或任何其他步骤的操作。

抓包分析工具:

  1. 最常用的还是chrome和firefox的开发者工具,我们的教程中几乎都是chrome开发者工具作为示例。
  2. app抓包可以使用fiddler和charless,如果搞不定就得上更加高端的wireshark。甚至是mitmproxy或anyproxy进行抓包。
  3. 后续在我们讲解到app抓取时,我们会比较详细的介绍app如何反编译,找到加密算法。但其实app抓取更常用的手段是Appium模拟,这类似于PC端使用浏览器进行渲染。

建议爬虫初学者不要一次学习太多工具,只要先对每个工具的作用做一个初步了解,后续伴随着项目的进行,遇到合适的场景下选择合适的工具即可。

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

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

相关文章

读算法霸权笔记03_操控与恐吓

1. 市场失灵 1.1. 探索市场失灵现象就像寻宝游戏,很有意思 1.2. 建立一种算法来预测这个循环出现差错——多找回的两枚硬币——的可能性并对此下注 1.2.1. 盈利模式消失了,或者市场中的其他人也了解了这个模式,先行者优势消失 1.3. 在很多…

win10看计算机属性,win10系统查看windows7版本号要比计算机属性具体的图文步骤

win10系统使用久了,好多网友反馈说关于对win10系统查看windows7版本号要比计算机属性具体设置的方法,在使用win10系统的过程中经常不知道如何去对win10系统查看windows7版本号要比计算机属性具体进行设置,有什么好的办法去设置win10系统查看w…

mysql执行计划查看_查看Mysql执行计划

1、MySQL语法MySql提供了EXPLAIN语法用来进行查询分析,在SQL语句前加一个”EXPLAIN”即可。默认情况下Mysql的profiling是关闭的,所以首先必须打开profilingset profiling"ON"mysql> show variables like "%profi%";------------…

计算机社团活动总结ppt,社团活动总结PPT

九月迎新生,大学社团活动再次活跃起来。为了做好今年的活动,有必要对去年的社团活动做下反思总结。下面是出国留学网小编为您整理提供的大学社团活动总结PPT模板及正文预览,欢迎查看。PPT正文预览:大学社团活动总结xxxx年对活动与…

myeclipse怎么创建jframe类_创建型-建造者模式

一个对象创建的时候,需要各种初始化化,有一套复杂的创建流程,如果这些流程散布在系统各个地方的话,会越来越难以维护,因此建造者模式就是把一套复杂的创建某个具体产品的流程,管理起来。定义:将…

mysql占用内存吗_mysql占多少内存

展开全部MySQL 自身内存规62616964757a686964616fe4b893e5b19e31333433646463划说到 MySQL 自身的内存规划,最先想到的就是 MySQL 中各种 buffer 的大小,innodb buffer pool 就是最鹤立鸡群的那个。innodb_buffer_pool_size 参数的大小究竟如何设置&…

计算机鼠标装有,计算机鼠标装有传感器来监视鼠标的移动情况,如图

利用欧姆定律进行计算:根据串、并联电路的特点和欧姆定律的公式可进行有关计算。解题的方法是:(1)根据题意画出电路图,看清电路的组成(串联还是并联);(2)明确题目给出的已知条件与未知条件,并在电路图上标明&#xff1…

docker portainer_「实战篇」开源项目docker化运维部署-Portainer管理集群部署(十)...

之前都是通过命令的方式,管理docker的,其实docker还是有图形界面的。使用图形界面如何管理docker,其实业界很多公司都对docker进行了图形化的封装。之前在初级和中级的时候也有界面marathon。这里说下业界比较出名的portainer。portainer官网…

php 执行mysql查询_php中执行mysql的常用操作

连接到mysql服务器:$conn mysql_connect($host,$user,$password) or die ("连接失败");mysql_query($conn);选择数据库:$usedbmysql_select_db("$db_name")or die ("连接失败");mysql_query($usedb);解决在mysql数据库中…

怎么快速搜索服务器里的文件,使用 Everything,快速搜索电脑文件,制作局域网资料搜索器 | 科技搜...

所需工具:Everything在 Windows 系统中,已经有自带的资源管理器文件查找功用,当然也有其他的一些软件辅佐查找,但是这些都不及一款软件,名字叫 Everything ,速度非常快,支持正则表达式&#xff…

python循环结构语句_python控制语句---循环结构语句

这次主要把循环结构的控制语句补上,主要包含while、for、continue、break、循环嵌套。主要写一些基本的认识以及包含的一些实例。当只有唯一路径且只跑一次的时候选择上一节中的选择结构语句就可以了,但是当执行一次或者重复循环执行时就需要另辟蹊径了&…

hive left outer join 子查询临时表_基于历史数据的用户访问次数,每天新老用户,日活,周活,月活的hive计算...

最近有一个需求,统计每天的新老用户,日活,周活,月活。 我们每天的增量数据会加入到hive历史数据表中,包含用户访问网站的一些信息,字段有很多,包括用户唯一标识guid。 当然了日活,周…

sql server2008r2 没有提示_SQL学习之旅(1)

从2020.07.28开始跟着猴子哥系统学习数据库,在此记录自己的sql学习与练习过程,希望能为以后的自己带来帮助。SQL简介练习1:1.如何验证mysql数据库安装成功?在完成环境变量的配置的情况(在Path中添加mysql的bin目录路径…

lptv自建服务器,如何搭建自己的IPTV平台

概述IPTV平台包括鉴权服务器、EPG服务器和媒体服务器。IPTV机顶盒首先与鉴权服务器进行通信,鉴权成功后获取EPG服务器和UserToken。EPG服务器实现节目内容导航、播放控制等用户界面。媒体服务器以RTSP协议实现流媒体传输。机顶盒与鉴权服务器和EPG服务器之间的通信都…

mysql事务prepare_mysql之 事务prepare 与 commit 阶段分析

打开binlog选项后,执行事务提交命令时,就会进入两阶段提交模式。两阶段提交分为prepare阶段和commit两个阶段。流程如下 :这里面涉及到两个重要的参数:innodb_flush_log_at_trx_commit和sync_binlog,参数可以设置不同的…

order by 子查询_【框架】118:mybatis之多表高级查询

今天是刘小爱自学Java的第118天。感谢你的观看,谢谢你。学习内容安排如下:补充说明知识点:resultMap,sql片段。mybatis中的高级查询,即多表关联查询。查询主要分为:一对一,一对多,多…

小程序使用css变量,小程序使用css变量实现“换肤”方案

使用sass,stylus可以很方便的使用变量来做样式设计,其实css也同样可以定义变量,在小程序中由于原生不支持动态css语法,so,可以使用css变量来使用开发工作变简单。基础用法page {--main-bg-color: brown;}.one {color: white;backg…

笔试MySQL读写速度优化_笔试题:优化mysql数据库的方法

优化mysql数据库的方法,(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率(2).系统架构设计方面,表散列,把海量数据散列到几个不…

css找某个元素的下个子元素,CSS可以检测一个元素有多less个子元素?

注:这个解决scheme将返回一定长度的子集,而不是你所要求的父元素。 希望它仍然有用。安德烈路易斯提出了一个方法: http : //lea.verou.me/2011/01/styling-children-based-on-their-number-with-css3/不幸的是,它只适用于IE9及以…

python文本聚类分析_python机器学习kmeans算法——对文本进行聚类分析

#!/usr/bin/env python#-*- coding: utf-8 -*-#File : kmeans.py#Author: 田智凯#Date : 2020/3/19#Desc :机器学习kmeans算法,对科技成果项目进行聚类分析 from __future__ importprint_functionimporttimefrom sklearn.feature_extraction.text importTfidfVector…