![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
爬虫
程序员杂谈
自我评价
诚实信用 勤奋刻苦 有较强的组织能力和团队意识
责任心强 有创新精神 自学能力较好
精通seo优化
展开
-
Scrap Shell -笔记
我们想要在爬虫中使用 xpath、beautifulsoup、正则表达式、css选择器等来提取想要的数据。但是因为sapy是一个比较重的框架。每次运行起来都要等待一段时间。因此要去验证我们写的提取规则是否正确,是一个比较麻烦的事情。因此scrap提供了一个shell,用来方便的测试规则。当然也不仅仅局限于这一个功能。打开 Scrap Shell打开cmd终端,进入到 Scrap项目所在的目录...原创 2018-11-08 17:28:06 · 329 阅读 · 0 评论 -
爬虫自动登录访同授权页面
http.cookiejar模块该模块主要的类有 Cookiejar,、 Filecookiejar、 MozillaCooklejar、 LwpCookiejar。这四个的作用分别如下1.CookieJar:管理HTTPcookie值、存储HTTP请求生成的cookie、向传出的HTTP请求加cookies的对象,整个cookie都存储在内存中,对 Cooklejar实例进行垃圾回收后coo...原创 2018-12-25 09:01:31 · 935 阅读 · 0 评论 -
selenium打开多窗口和切换窗口
设置代理IP:有时候频繁爬取一些两页。服务器发现你是爬虫后会封掉你的p地址・这时候我们可以更改代理IP・更改代理IP,不同的浏览器有不用的实现方式。这里以 Chrome览器为例来讲解from selenium Import webdrlveroptions=webdriver.Chromeoptions()options.add_argument("proxy-server-http:...原创 2019-01-04 15:53:24 · 2090 阅读 · 0 评论 -
response.text和 response.content的区别:
1. response.content这个是直接从网络上面抓取的数据,没有经过任何解码,所以是一个 bytes类型,其实在硬盘上和在网络上传输的字符串都是 bytes类型,2. response,text:这个是 requests,将 response.content进行解码的字符串,解码需要指定一个编码方式, requests会根据自己的猜测来判断编码的方式,所以有时候可能会猜测错误,就会导致...原创 2018-12-25 16:38:14 · 20541 阅读 · 0 评论 -
Request和Response对象讲解
Request对象在我们写爬虫,爬取一页的数据需要重新发送一个请求的时候调用,这个类需要传递一些数,其中比较常用的参数有:1.ur1:这个 request对象发送请求的url2.callback:在下载器下数完相应的放据后执行的回调数,3.method:请求的方法。默认为GET方法,可以设置为其他方法4.headers:请求头,对于一些固定的设置,放在settings.py中指定就可以了...原创 2019-01-11 08:31:12 · 779 阅读 · 0 评论 -
selenium操作表单元素
操作表单元素1、操作输入框:分为两出,解一步:找到这个元素,解二步:使用 send_key(value),将数据填充进去,示例代码知下inputTag = driver.find_element_by_id('kw')inputTag.send_keys('python')使用clear方法可以清除输入框中的内容。示例代码下:inputTag.clear()2.操作 chec...原创 2019-01-02 11:13:01 · 3750 阅读 · 0 评论 -
selenium的隐式等待和显式等待及cookie操作
页面等特:现在的网页越来越多采用了Ajax技术,这样程序便不能确定何时某个元素完全加载出来,入股实际页面等待时间过长导致某个dom元素还没出来,但是你的代码直接使用了这个 Webelement,那么就会上Nullpointerf的异常,为了解决这个问题,所以 Selenium提供了两种等待方式:一种是隐式等待、一种是式等待1.隐式等待:调用 driverim.plicitly_wait。那...原创 2019-01-02 11:31:37 · 416 阅读 · 0 评论 -
图形验证码识别技术
阻碍我们爬虫的。有时候正是在登录或者请求一些数据时候的图形验证码。因此这里我们讲解一种能将图片翻译成文字的技术。将图片翻译成文字一般被成力光学文字R别( optical Character Recognition),简写OCR。实现OCR的库不是很多,特别是开源的因为这块存在一定的技术壁(需要大量的数据、算法、机器学习、深度学习知识等),并且如果做好了具有很高的商业价值。因此开源的比技少。这里...原创 2019-01-07 10:43:25 · 2775 阅读 · 0 评论 -
Scrapy框架架构
Scrapy框架介绍写一个爬虫,需更做很多的事情。比如:发送网络请求、数据解折、数据存储、反反爬虫机制(更换IP'代理、设置请求头等)、异步请求等。这些工作如果每次都要自己从零开始写的话,比较浪费时间。因此scrapy把一些基础的东西封装好了,在他上面写虫可以变的更加的高效(爬取效率和开发效率)。因此真正在公司里,一些上了量的配虫,都是使用scrap架来解决。 Scrap框架模块...原创 2019-01-07 15:25:00 · 439 阅读 · 0 评论 -
用scrapy创建爬虫项目
创建项目和爬虫:1.创建项目:`scrapy startproject [爬虫的名字]`2.创建爬虫:进入到项目所在的路径,执行命令:`scrapy genspider [爬虫名字] [爬虫的域名]注意:爬虫名字不能和项目名称一致项目目录结构:1. Items.py:用来存放爬虫爬取下来数据的模型.2. middlewares.py:用来存放各种中间件的文件。3. pipeline...原创 2019-01-09 13:49:39 · 561 阅读 · 1 评论 -
爬虫使用cookie模拟登录
使用cooklelib库和Httpcookieprocessora模拟登录Cookie是指网站服务器为了辨别用户身份和进行 Session跟踪,而储存在用户浏览器的文本文件, Cookie可以保持登录信息到用户下次与服务器的会话。这里以人人网为例。人人网中,要访回某个人的主页,必须先登录才能访问,登录说白了就是要有cookie信息。那么如果我们想要用代码的方式访问,就必须要有正确的cooki...原创 2018-12-24 17:48:52 · 2492 阅读 · 1 评论 -
Cookie原理和格式详解
什么是 cookie在网站中,http请求是无状态的。也就是说使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户, cookie的出现就是为了解決这个问題,第一次登录后服务器返回一些数据( cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的 cookieI数据自动的携带给服务器,服务器通过浏览器携带的数据就能...原创 2018-12-24 15:41:59 · 4785 阅读 · 0 评论 -
Proxyhandler处理器
Proxyhandler处理器(代理):1.代理的原理:在请求目的网站之前,先请求代理服务器,然后让代理服务器去请求目的网站,代理服务器拿到目的网站的数据后,再转发给我们的代码。2.http://httpbin.org:这个网站可以方便的查看http请求的一些参数。3.在代码中使用代理 *使用url1ib. request. Proxyhandler,传入一个代理,这个代理是一个字典...原创 2018-12-24 14:48:44 · 2304 阅读 · 0 评论 -
http协议-学习笔记
请求头常见参数:在http协议中,向服务器发送一个请求,数据分为三部分,第一个是把数据放在URL中,第二个是把数据放在body中(在post请求中),第三个就是把数据放在head中。这里介绍在网爬虫中经常会用到的一些请求头参数:1.user- Arent:浏览器名称。这个在网络爬虫中经常会被使用到。请求一个网页的到时候,服务器通过这个参数就可以知道这个请求是由哪种刘览器发送的。如果我们是通过爬...原创 2018-12-05 14:55:42 · 277 阅读 · 0 评论 -
urlib库之urlopen函数用法
urlopen函数:在python3的urllib库中,所有和网络请求相关的方法,都被集到urllib.request模块下面了,以先来着下urlopen函数基本的使用:from urllib import requestresp = request.urlopen('http://www.baidu.com')print(resp.read())实际上,使用浏览器浏览百度,右键查看源代...原创 2018-12-05 16:45:37 · 4676 阅读 · 0 评论 -
requests发送post、get请求
1、最基本的POST请求可以使用post方法 response = requests.post("http://www.baidu.com",data=data)2、穿入data 这时候就不要使用urlencode进行编码了,直接穿入一个字典进去就可以了。比如请求拉勾网的数据的代码 import request url = "https://www.l...原创 2018-12-26 14:39:59 · 2296 阅读 · 0 评论 -
lxml解析html代码和文件
lxml是一个 HTML/XML的解析器,主要的功能是如何解析和提取HTML/XML数据。lxml和正则一样,也是用C实现的,是一款高性能的 Python HTML/XML解折,我们可以利用之学习的Xpath语法,来快速的定位特定元素以及节点信息。lxmlpython官方文档:http://hxmlde/indexhtml要安装C语言库,可使用pip安装 :pip install lxml...原创 2018-12-26 17:59:44 · 3187 阅读 · 1 评论 -
Beattifulsoupk库的基本介绍
Beautifulsoup4库和lxml一样, BeautifulSoup也是一个 HTML/XML的解析器,主更的功能也是如何解析和提取HTML/XML数据。lxml只会局部便利,而BeautifulSoup是基于HTMLDOME的,会载入整个文档,解折整个DOM树,因此时间和内存开销都会大很多,所以性能要低于xml。Beautifulsoup用来解析HTML比简单,APE常人性化,支持C...原创 2018-12-27 11:40:58 · 650 阅读 · 0 评论 -
Beautifulsoup4库提取数据详解
Beautlfu1Soup记:find_all的使用:1.在提取标签的时候,第一个参数是标签的名字。然后如果在提取标签的时候想要使用标签属性进行过滤,那么可以在这个方法中通过关键字参数的形式,将属性的名字以及对应的值传进去。或者是使用 attrs属性,将所有的属性以及对应的值放在一个字典中传给attrs属性2.有些时候,在提取标签的时候,不想提取那么多,那么可以使用1imit参数。限制提取多...原创 2018-12-28 10:43:22 · 1168 阅读 · 0 评论 -
多线程概念和Threading模块介绍
多线程爬虫有些时候,比如下图片,因为下载图片是一个耗时的操作。如果采用之前那种同步的方式下载。那效率肯会特别慢。这时候我们就可以考虑使用多线程的方式来下图片。多线程介绍:多程是为了同步完成多项任务,通过提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。最简单的比喻多线程就像火车的每一节车用,而进程贝是火车。车厢离开火车是无法跑动的,同理火车也可以有多节车厢。...原创 2018-12-29 10:14:09 · 424 阅读 · 0 评论 -
生产者和消费者模式
Lock版本生产者和消费者模式生产者和消费者模式是多线程开发中经常见到的一种模式。生产者的线程专门用来生产一些数据,然后存放到一个中间的变量中。消费者再从这个中间的变量中取出数据进行消费。但是因为要使用中间娈量,中间变量经常是一些全局变量,因此需要使用锁来保证数据完整性。以下是使用 threading.Lock锁实现的"生产者与消费者模式"的一个例子import threadingi...原创 2018-12-29 10:56:42 · 504 阅读 · 0 评论 -
URLLIB库之函数介绍-爬虫
URLLIB库的urlretrieve函数用法urlretrievel函数:这个面数可以方便的将网页上的一个文件保存到本地。以下代码可少非常方便的将百度的首页下载到本地:from urllib import requestrequest.urlretrdeve("http://www.baidu.com/,"baidu.html")5 urllib库之参数编码和解码函urlen...原创 2018-12-24 14:22:44 · 405 阅读 · 0 评论 -
CrawlSpider
在上一个糗事百科的爬虫案例中。我们是自己在解析完整个页面后获取下一页的url,然后重新发送一个请求。有时候我们想要这样做,只要满足某个条件的url,都给我进行爬取。那么这时候我们就可以通过Craw1spider来帮我们完成了。cralsder继承自 Spider,只不过是在之前的基础之上增加了新的功能,可以定义爬取的url的规则,以后scrapy碰到两足条件的url都进行爬取,而不用手动的 yi...原创 2019-01-09 16:02:09 · 669 阅读 · 0 评论