爬虫
何永生
这个作者很懒,什么都没留下…
展开
-
爬虫进阶:验证码突破--3、验证码截图定位
如下便是我编写的关于识别网址验证码的位置的代码#coding:utf-8from selenium import webdriverimport randomimport tesserocrimport reimport requestsimport pytesseractfrom selenium import webdriverfrom PIL import Image, I...原创 2019-05-02 16:12:33 · 1050 阅读 · 1 评论 -
爬虫进阶:验证码突破--2、tesserocr的安装
1. OCROCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容。例如,对于如图1和图2所示的验证码,我们可以使用OCR技术来将其转化为电子文本,然后爬虫将识别结果提交给服务器,便可以达到自动识别验证码的过程。图1...原创 2019-05-01 12:54:17 · 346 阅读 · 0 评论 -
爬虫进阶:验证码突破--1、验证码类型
什么是验证码?验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试...转载 2019-04-30 16:09:13 · 609 阅读 · 0 评论 -
爬虫进阶:验证码突破--6、机器学习识别简单图片字母验证码
一、生成验证码图片:#coding:utf-8from PIL import Imagefrom PIL import ImageDrawfrom PIL import ImageFontimport randomclass ValidCodeImg: def __init__(self, width=150, height=30, code_count=5, font_siz...原创 2019-05-05 22:25:59 · 880 阅读 · 0 评论 -
爬虫进阶:Selenium框架--3、调试
1、连接失败:selenium.common.exceptions.WebDriverException: Message: newSession直接将geckodriver.exe拷贝到当前py脚本的路径下就可以了2、如果是在Linux环境下,需要一个虚拟化桌面from pyvirtualdisplay import Displayfrom selenium import webdri...原创 2019-04-30 13:39:11 · 389 阅读 · 0 评论 -
爬虫进阶:Selenium框架--2、使用
browser使用方法:1、查找元素from selenium import webdriverimport timebrower = webdriver.Firefox()browser.get("http://www.taobao.com")input_first = browser.find_element_by_id("q")input_second = browser.fi...转载 2019-04-30 13:36:50 · 319 阅读 · 0 评论 -
爬虫进阶:Selenium框架--1、安装
Selenium+python实际上就是自动化测试的框架,通过python模拟浏览器的动作执行页面访问Python安装selenium,配置火狐浏览器环境火狐浏览器直接从网上下载即可,https://www.firefox.com.cn/ 请注意不要安装开发者版本geckodriver的下载链接:https://github.com/mozilla/geckodriver/releases...原创 2019-04-30 13:32:07 · 305 阅读 · 1 评论 -
爬虫进阶:反反爬虫技术--4 爬虫访问速度和路径的控制
有一些防护措施完备的网站可能会阻止你快速地提交表单,或者快速地与网站进行交互。即使没有这些安全措施,用一个比普通人快很多的速度从一个网站下载大量信息也可能让自己被网站封杀。因此,虽然多线程程序可能是一个快速加载页面的好办法——在一个线程中处理数据,另一个线程中加载页面——但是这对编写好的爬虫来说是恐怖的策略。还是应该尽量保证一次加载页面加载且数据请求最小化。如果条件允许,尽量为每个页面访问增加一...原创 2019-04-30 13:24:33 · 735 阅读 · 0 评论 -
爬虫进阶:反反爬虫技术--3 设置合理的cookie
虽然 cookie 是一把双刃剑,但正确地处理 cookie 可以避免许多采集问题。网站会用 cookie 跟踪你的访问过程,如果发现了爬虫异常行为就会中断你的访问,比如特别快速地填写表单,或者浏览大量页面。虽然这些行为可以通过关闭并重新连接或者改变 IP 地址来伪装,但是如果 cookie 暴露了你的身份,再多努力也是白费。在采集一些网站时 cookie 是不可或缺的。要在一个网站上持续保持登...原创 2019-04-30 13:19:39 · 3059 阅读 · 0 评论 -
爬虫进阶:反反爬虫技术--2 使用可变IP
一:IP代理池从技术上说,IP 地址是可以通过发送数据包进行伪装的,就是分布式拒绝服务攻击技术(Distributed Denial of Service,DDoS),攻击者不需要关心接收的数据包(这样发送请求的时候就可以使用假 IP 地址)。但是网络数据采集是一种需要关心服务器响应的行为,所以我们认为 IP 地址是不能造假的。如果一个固定的ip在短暂的时间内,快速大量的访问一个网站,那自然会...原创 2019-04-30 13:03:53 · 566 阅读 · 0 评论 -
爬虫:图片获取
文章来源:https://blog.csdn.net/sinat_35866463/article/details/80341524每个html标签都有各自的功能。标签存放一下超链接,图片存放在哪个标签里呢?html规定,图片放到标签中。标签有很多属性,有alt、src、class、style属性,其中src属性存放的就是我们需要的图片保存地址,我们根据这个地址就可以进行图片的下载。网站有静...原创 2019-03-14 18:23:55 · 2987 阅读 · 0 评论 -
爬虫:小说下载
1、网络爬虫,推荐一个解析HTML的Python库–Requests-HTML这个库的用法,可以参考如下网址:https://blog.csdn.net/anonymous_qsh/article/details/793725242、写这个文章的目的,只是为了记录自己学习python爬虫项目所用。如果要看小说,请支持正版本人学习的地址来源于:https://www.w3cschool.c...原创 2019-03-14 18:10:23 · 3074 阅读 · 2 评论 -
爬虫进阶:反反爬虫技术--1User-Agent伪装,构造合理的 HTTP 请求头
1. 构造合理的 HTTP 请求头除了处理网站表单,requests 模块还是一个设置请求头的利器。HTTP 的请求头是在你每次向网络服务器发送请求时,传递的一组属性和配置信息。HTTP 定义了十几种古怪的请求头类型,不过大多数都不常用。只有下面的七个字段被大多数浏览器用来初始化所有网络请求(表中信息是我自己浏览器的数据)请求头可以通过 requests 模块进行自定义。https://ww...原创 2019-04-30 12:48:25 · 1920 阅读 · 0 评论 -
爬虫进阶:验证码突破--5、验证码处理
前面有篇文章提到关于验证码的生成:https://blog.csdn.net/huoyingchong64/article/details/89788676本文主要是针对这个验证码进行的CNN深度学习算法的验证码处理。主要包含灰值化,二值化,降噪,分割字符。下面就是经过测试后的代码。其中rate = 0.01 # 在threshold的适当范围内进行处理,由于rate设置为0.1时,有一个字...原创 2019-05-04 16:08:51 · 580 阅读 · 0 评论 -
爬虫进阶:验证码突破--4、python PIL 验证码生成
什么是PILPIL:是Python Image Library的缩写,图像处理的模块。主要的类包括Image,ImageFont,ImageDraw,ImageFilterPIL的导入首先需要安装一下pillow包pip install pillow然后就可以调用PIL里的类了from PIL import Imagefrom PIL import ImageFontfrom P...转载 2019-05-03 16:18:12 · 321 阅读 · 0 评论 -
爬虫进阶:验证码突破--7、滑动验证码破解
测试网址是网易cc,只是研究爬虫自动化1、Iframe窗口切换import time, refrom selenium import webdriverchrome_option = webdriver.ChromeOptions()driver = webdriver.Chrome(chrome_options=chrome_option)driver.set_window_size...原创 2019-05-10 16:59:09 · 1512 阅读 · 0 评论