![](https://img-blog.csdnimg.cn/20200510164938863.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
python
python学习
史蒂文周
这个作者很懒,什么都没留下…
展开
-
pyhton爬虫学习(十七):scrapy框架通过管道pipeline存储到mysql数据库
假设有这样一个需求,我们准备爬取如上图所示,京东商城的手机销售列表的信息,并存入到数据库中。 从图中,我们可以看到,准备存储这几个字段图片(imageUrl),价格(price),产品描述(description),评论数(commentNum),店名(shopName)并且,我们还需要考虑分页爬取的问题。这里我们使用mysql数据库进行存储。Mysql操作这边我会说的很简单,毕竟不是我们本篇文章的重点。首先我们先创建数据库和存储的表。如下CREATE DATABASE phonedb; cre.原创 2020-05-21 14:54:39 · 610 阅读 · 0 评论 -
pyhton爬虫学习(十六):scrapy框架通过管道pipeline存储成文件
前面已经讲了scrapy框架的创建和运行,包括一些中间件的的设置和使用。 现在开始讲如何通过管道pipelines进行数据的存储,主要讲存储成文件形式。我们知道创建的scrapy项目有一个pipelines.py的文件,这个文件就是用来存储我们定义的管道处理类的地方。不过要使用pipelines,首先需要在settings.py文件里面配置pipelines。在setting.py文件里面找到关于pipelines的设置部分,默认设置如下所示。# Configure item pipelines#原创 2020-05-21 11:57:40 · 668 阅读 · 0 评论 -
pyhton爬虫学习(十五):scrapy框架用户代理和ip代理的使用
当我们要爬取大量网页的时候,可能会收到对方服务器的限制,从而被禁止。那么我们应该如何应对这些反爬虫机制呢scrapy项目中可以有很多方法避免被禁止。其中两个比较好用的方式,就是使用用户代理池和ip代理池。因为大部分网站都是通过这两种方式进行反爬的。那么具体怎么使用呢,这里我们就用用到scrapy的中间件middlewares。因为在scrapy中两者的使用方式大同小异,这里就合在一起讲。首先是在setting.py设置用户代理池和ip代理池的变量,在其他py文件也可以,只要能被调用到就行。如下设置原创 2020-05-21 09:53:58 · 2260 阅读 · 0 评论 -
pyhton爬虫学习(十四):scrapy简单实例的创建和运行
接下来我主要通过一个具体的scrapy实例具体讲解scrapy框架的创建和运行过程。首先,使用scrapy startproject hello创建一个hello的scrapy爬虫项目。此时会生成一个名为hello的文件夹。该文件夹下拥有一个同名的子文件和一个scrapy.cfg的文件。该同名子文件下放置的是爬虫项目的核心代码,scrapy.cfg主要是爬虫项目的配置文件。这个我使用PyCharm编辑器打开工程文件,工程结构目录如下:init.py: 爬虫项目的初始化文件,用来对项目做初始化工作。原创 2020-05-20 15:42:03 · 349 阅读 · 0 评论 -
pyhton爬虫学习(十三):scrapy框架原理
Scrapy架构图引擎(Engine)负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。调度器(Scheduler)调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。下载器(Downloader)负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理爬虫(Spiders)它负责处原创 2020-05-20 14:27:21 · 288 阅读 · 0 评论 -
pyhton爬虫学习(十二):Scrapy的全局命令介绍
上一节讲了scrapy环境的安装,不清楚的可以先看一下 pyhton爬虫学习(十一):Scrapy的安装这节开始scrapy常用的命令。可以通过scrapy -h查看常用的一些命令。这边主要介绍全局的命令。startproject命令对scrapy爬虫项目的创建,目前是通过命令创建。比如你有一个文件夹python,要在这个文件里面建一个名为helloworld的scrapy爬虫项目。 先用cd命令进入python文件里面,通过命令scrapy startproject helloworld,这个时候原创 2020-05-20 11:15:34 · 307 阅读 · 0 评论 -
pyhton爬虫学习(十一):Scrapy的安装
我现在的python版本为3.7.3 可直接在命令行输入pip install scrapy进行scrapy的安装,安装的时候会自动检索和安装所需要的其他依赖包。不过正常安装也可能会出现一些错误导致安装失败。比如我在window安装的时候提示提示如下错误Collecting Twisted>=13.1.0 (from scrapy) Downloading https://files.pythonhosted.org/packages/f8/2b/a80a70f71eb2b86992ffa5a原创 2020-05-19 10:48:41 · 183 阅读 · 0 评论 -
pyhton爬虫学习(十):常用的框架简单介绍
这里先简单的介绍几个常用的python爬虫红框,后续文章将会有详细的使用详解。scrapy框架是一套成熟的python爬虫框架,是使用python开发的快速、高层次的信息爬取框架,可以高效的爬取web页面并提取出我们关注的结构化数据,scrapy应用的领域很多,如网络爬虫开发,数据挖掘,数据监测,自动化测试等Crawley框架使用python开发出来的一款爬虫框架,致力于改变人们从互联网中提取数据的方式,让大家可以更高效的从互联网中爬取对应内容。Portia框架是一款允许没有任何编程基础的用户可原创 2020-05-19 09:56:17 · 171 阅读 · 0 评论 -
pyhton爬虫学习(九):爬虫伪装
有些网站可以识别出访问者是通过浏览器还是爬虫反问该网站,如果识别不是浏览器,就会禁止反问或者禁止该用户在网站上面的其他行为。比如不允许被登录等。如果此时我们想对该网站进行爬取,就需要使用浏览器的伪装技术。那么什么是浏览器的伪装技术呢? 要回答这个问题,我们首先了解一下常见的反爬虫机制:通过分析用户请求的Headers信息进行反爬虫。通过检测用户行为进行反爬虫,比如通过判断同一个ip在短时间内是否频繁访问对应网站等进行分析。通过动态页面增加爬虫爬取的难度,达到反爬虫的目的,比如需要输入动态的图片验证原创 2020-05-19 09:17:13 · 264 阅读 · 1 评论 -
pyhton爬虫学习(八):线程和队列的使用
上一篇我们写了python实现图片爬取的实例,有兴趣可以看看地址:https://blog.csdn.net/stonezry/article/details/106072145我们还是实现和上面相同的功能,只是这里我们运用了线程和队列进行实现。python的线程创建方法,这里有两种方法。1. 将要执行的方法作为参数传给Thread的构造方法 target传递方法名字,args传递方法参数。 如下#!/usr/bin/python3 import threading import time原创 2020-05-18 17:55:27 · 201 阅读 · 0 评论 -
pyhton爬虫学习(七):图片爬取实例
爬取图片首先是找规律。这里以京东搜索手机为例。得到如下的请求连接https://search.jd.com/Search?keyword=手机&wq=手机&page=1&s=30&click=0如上图,是一个手机的商品列表展示页面,我们的目的就是爬取出所有的这些商品上面的图片。我们可以先试着切换一些底部的页面数字按钮,可以发现一个规律,page的值为奇数,s=page*30,其他都固定不变。于是,我们可以想整出一个访问所有页面的方法,如下:for i in ra原创 2020-05-12 14:15:11 · 306 阅读 · 0 评论 -
正则表达式(.+)和(.+?)的区别(python版)
(.+)默认是贪婪匹配(.+?)为惰性匹配举个例子,我这边用python做测试。import repattern1 = “a.+b”pattern2 = “a.+?b”string = ‘abcdabcdabcdabcd’result1 = re.match(pattern1,string)result2 = re.match(pattern2,string)print(result1)print(result2)运行之后的结果如下:<re.Match object; spa原创 2020-05-11 11:27:38 · 877 阅读 · 0 评论 -
pyhton爬虫学习(六):Cookie的使用
什么是cookie在爬虫的使用中,如果涉及登录等操作,经常要使用到Cookie。那什么是Cookie呢?简单来说,我们访问每一个互联网页面,都是通过http协议进行的,而http协议是一个无状态的协议,所谓的无状态协议即无法维持会话间的状态。比如你用http登录一个网站,加入登录成功了,但是访问该网站其他网页的时候,登录状态则会消失,还需要在登录一次,只要页面涉及更新,就需要反复的进行登录,这是非常不方便的。所以我们需要对将一些会话信息通过某种方式保存起来。常用的有两种方式,通过cookie保持会原创 2020-05-11 11:20:55 · 324 阅读 · 0 评论 -
python爬虫学习(五):代理服务器设置
使用同一个ip频繁去爬取同一个网站的网页,可能会被屏蔽,这个时候,我们就可以使用代理服务器来解决这个问题。网上的免费获取代理服务器地址的网站,大家可以自行搜索,一般可以用他们提供的免费代理服务器地址,当然如果有钱的话,用付费的可能会靠谱一点。那么怎么利用这些个地址呢,我的建议是可以自己写一个爬虫(后面会写一个源码供大家参考),然后把上面的ip地址一个一个爬取出来,存放到一个文件,或者数据库,可以存在MongoDB里面。要用的时候,读取出来,就可以用来设置代理服务器地址了。代理服务器地址的更换,检验可用与否原创 2020-05-11 10:53:19 · 919 阅读 · 0 评论 -
python爬虫学习(四):requests的使用
requests也一个访问网络资源的模块包,不过是python的第三方库,处理url比urllib会更方便一些,而且还有很多实用的高级功能。安装requests,这里采用pip进行安装:在windows系统下只需要在命令行输入命令 pip install requests 即可安装。在 linux 系统下,只需要输入命令 sudo pip install requests ,即可安装。在 mac系统下,只需要输入命令 pip3 install requests ,即可安装。安装成功原创 2020-05-11 10:41:56 · 335 阅读 · 0 评论 -
python爬虫学习(三):urllib的使用
urllib是python内置的一个可以使用url模块的软件包的集合。urllib.request 打开和阅读 URLsurllib.error 包含 urllib.request 抛出的异常urllib.parse 用于处理 URLurllib.robotparser 用于解析 robots.txt 文件1、urllib.request.urlopen()该函数用于实现对目标url的访问,是urllib 获取普通网页的基本方法def urlopen(url, data=None, tim原创 2020-05-11 10:21:12 · 404 阅读 · 0 评论 -
python爬虫学习(二):python基础
1.关于python一些基础的语法,想要相对系统的学习的话,这里推荐这个比较好的网上学习教程:廖雪峰的python学习教程菜鸟教程python3看完这两个教程,对python的基本操作应该就没有问题了。另外也可以下载下列提供的某个电子书资源进行基础学习。下载地址https://pan.baidu.com/s/1OpFsXkwv991cuELAbVDqUA 密码:bnrg在命令行通过命令运行python,可以输入python +文件名执行,比如建一个文件叫hello.py,里面的内容为原创 2020-05-10 22:25:11 · 171 阅读 · 0 评论 -
pyhton爬虫学习(一):环境搭建
Python是一种面向对象的解释型计算机程序设计语言,其使用,具有跨平台的特点,可以在Linux、macOS以及Windows系统中搭建环境并使用那么要学习python爬虫,首先肯定是环境搭建了,这是所有软件都必须做的事情。关于python的安装:1.可以直接在python官网下载,官网地址:https://www.python.org/downloads/release2.也可以下载Anaconda包,官网地址:https://www.anaconda.com/distribution/关于An原创 2020-05-10 22:07:35 · 260 阅读 · 0 评论