爬虫
crazyBird_GJY
人生苦短就用python
展开
-
异步网络爬虫的Python实现(1)
本文翻译自500L系列文章,原文链接, 原文作者A. Jesse Jiryu Davis 和 Guido van Rossum.A. Jesse Jiryu Davis是纽约MongoDB的一名工程师,他是MongoDB Python 驱动Motor的主要作者,同时他也是MongoDB C语言驱动项目的重要成员。他的个人博客地址。Guido van Rossum是Python的创建者,Py...转载 2018-08-04 16:00:09 · 160 阅读 · 0 评论 -
直接调用阿里云接口爬取数据
1、初次试探接到任务,要爬取阿里云上所有拍卖的域名。本想试试scrapy,查看了下网页源码,没有找到要爬取的内容。大网站就是不一样啊,数据隐藏的这么深。2、深入分析从源码没看出蛛丝马迹,习惯性地打开了Chrome的调试界面,看看我提交请求时到底干了些啥,果然,露馅了!原来域名列表是用js在前端渲染的,而不是在后端渲染的,用到了jsonp技术,用来解决Ajax跨域问题。点击sea...原创 2018-09-10 15:22:50 · 3932 阅读 · 0 评论 -
Appium+python自动化1-环境搭建(上)
前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python。小编擅长Python,所以接下来的教程是appium+python的实例。 学习appium最大的难处在于环境的安装,80%的人死于环境安装,然后就没然后了,10%的人被环境折腾一周以上,只有剩下的10%人品好,可以顺利安装。 ...转载 2018-09-13 17:51:10 · 114 阅读 · 0 评论 -
Appium+python自动化2-环境搭建(下)
前言 上一篇android测试开发环境已经准备好, 接下来就是appium的环境安装了。环境安装过程中切勿浮躁,按照步骤一个个来。 环境装好后,可以用真机连电脑,也可以用android-sdk里面的模拟器(当然这个模拟器不是很好用),我一般喜欢真机,真机比较快。 一、必备软件安装小编的环境是Windows 7版本 64位系统(32位的同学自己想办法哦) 1.jdk...转载 2018-09-13 17:53:00 · 172 阅读 · 0 评论 -
appium+Python真机运行测试demo的方法
appium+Python真机运行测试demo的方法 一, 打开手机的USB调试模式 二, 连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式。查看连接的效果,在cmd下运行命令:adb devices查看UDID,如下图所示:如果有输出,就表示连接成功。 三, 启动Appium服务方法一:cmd命令行启动 根据查到...转载 2018-09-18 21:55:58 · 468 阅读 · 0 评论 -
用appium爬取数据python3实现
一、前言 上一篇小说爬的是电脑端的静态网址,一直想爬手机端app数据的抓取,研究有好几天了,在网上也找了各种教程,差点挂在appium的环境安装。本编教程从appium的环境配置开始到抓取手机app微信朋友圈结束。 知乎:https://zhuanlan.zhihu.com/p/41311503 GitHub:https://github.com/FanShuixing/git_webspi...转载 2018-09-13 18:01:27 · 1952 阅读 · 3 评论 -
python requests 获取,设置cookie
python requests 获取,设置cookie首先是有一个能返回cookie的url, 然后在获取, 如下:import requestsurl = "https://fanyi.baidu.com"res = requests.get(url)print res.cookiesprint type(res.cookies)获取cookies是通过response的...转载 2018-09-14 14:08:06 · 6134 阅读 · 0 评论 -
Xpath高级用法
xpath速度比较快,是爬虫在网页定位中的较优选择,但是很多网页前端代码混乱难以定位,而学习定位也较为不易(主要是全面的教程较少),这里列出一点编程过程中可能有用的东西,欢迎共同学习批评指正。试验环境:Python环境,lxml.etree试验所使用的html代码 <!DOCTYPE html><html><head> <...转载 2018-10-13 12:35:27 · 122 阅读 · 0 评论 -
Appium+Python 自动化-appium常用元素定位方法
1. ID定位# resourceId属性的方法driver.find_element_by_id('com.lizi.app:id/setting_imageView').click() #以accessibility_id进行定位,对Android而言,就是content-description属性driver.find_element_by_accessibility_id('...转载 2018-10-09 12:44:25 · 197 阅读 · 0 评论 -
Scrapy-django将爬好的数据直接存入django模型中
项目整体结构:├── django+scrapy│ ├── example_bot│ │ ├── __init__.py│ │ ├── items.py│ │ ├── pipelines.py│ │ ├── settings.py│ │ └── spiders│ │ ├── __init__.py│ │ ...转载 2018-10-10 18:37:13 · 851 阅读 · 1 评论 -
自动化鼠标和键盘操作pyautogui
一 pyautogui模块简要说明## 使用 pyautogui 模块相关函数,可以模拟鼠标及键盘操作, 完整说明文档见: http://pyautogui.readthedocs.org/# pip install pyautogui# 要注意的是,模拟移动鼠标与击键可能太快,导致其他程序跟不上,并且程序可能失去控制,# 需要掌握如何从问题中恢复,至少要能中止它。# 防止或恢复G...转载 2018-10-25 08:54:03 · 2052 阅读 · 2 评论 -
关于selenium中chrome被反扒的问题(1)
问题描述: 比如一个网站,我们在浏览器可以正常打开,但是使用selenium模拟器却不可以,这是被反扒了,或许尝试,添加代理插件的方法,可以解决这一问题.代码如下:定义一个获取代理插件zip文件的函数from selenium import webdriverimport osimport reimport zipfiledef get_chrome_pr...原创 2018-10-23 10:42:21 · 1708 阅读 · 0 评论 -
selenium driver.get(url) 页面加载时间太长
在执行自动化测试用例过程中,发现因为网络慢或其他原因导致driver.get(url) 时,页面一直在加载,页面没有加载完成就不会去继续执行下面的动作,但是实际上需要操作的元素已经加载出来了。解决方法第一步:使用 set_script_timeout() 设置等待最大时间。第二步:到了最大等待时间后页面如果仍然没有加载完成,执行js代码, driver.execute_script("...转载 2018-11-06 15:40:35 · 19789 阅读 · 1 评论 -
selenium解决弹框
前言部分小伙伴学了selenium的alert后,就不管啥弹出框都去用alert,这是行不通的,看到弹出框,先要确定是不是alert,是才能用,不是的话肯定不能用。 有些弹出框是div层,这种跟平常定位方法一样 有些弹出框是嵌套的iframe层,这种切换iframe就可以了 有些弹出框比较坑,是嵌入的一个窗口,这就是本篇要讲的内容了。 遇到问题1.最近有小伙伴...转载 2018-09-12 14:00:23 · 1003 阅读 · 0 评论 -
Selenium元素定位的30种方式
Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素才能进行后续的自动化控制,我在这里将对各种元素定位方式进行总结归纳一下。这里将统一使用百度首页(www.baidu.com)进行示例,f12可以查看具体前端代码。 WebDriver8种基本元素定位方式find_element_by_id()采用id属性进行定位。例如在...转载 2018-09-12 11:47:27 · 243 阅读 · 0 评论 -
cookies详解
cookies简介cookie是什么?Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的规范是 RFC6265[1]。Cookie其实就是浏览器缓存。cookie的生命周期会话cookie:没有设置expires(是个时间...转载 2018-08-01 14:08:16 · 211 阅读 · 0 评论 -
selenium和requests进行cookies保存读取操作
使用selenium模拟登陆百度from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_...转载 2018-08-01 14:56:03 · 1729 阅读 · 0 评论 -
selenium中的expected_conditions模块详解
selenium.webdriver.support.expected_conditions(模块) 这两个条件类验证title,验证传入的参数title是否等于或包含于driver.titletitle_istitle_contains 这两个人条件验证元素是否出现,传入的参数都是元组类型的locator,如(By.ID, 'kw')顾名思义,一个只要一个符合条件的元素加载出来就通...转载 2018-08-01 15:18:35 · 911 阅读 · 0 评论 -
python3中的urllib包介绍
前言:什么是cookie?Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib库保存我们登录的Cookie,然后再抓取其他页面,这样就达到了我们的目的。一、Urllib库简介Urllib是python内置的H...转载 2018-08-01 17:38:12 · 2340 阅读 · 1 评论 -
异步网络爬虫的Python实现(2)
本文继续上一节的话题:异步网络爬虫的实现。回调函数的编写就目前我们写的异步框架,实现一个网络爬虫还是十分困难的,即使是实现一个简单的读取一个页面都很难。不过我们还是来尝试写一下抓取URL的代码,首先我们定义两个全局的集合来保存需要爬取的网址urls_todo = set(['/'])seen_urls = set(['/'])这里seen_urls是urls_todo和已经...转载 2018-08-06 18:49:38 · 142 阅读 · 0 评论 -
异步网络爬虫的Python实现(3)
本文继续上一节的话题:异步网络爬虫的实现。Python 中的生成器在讲解生成器之前,我们先来回忆一下Python中常规函数的实现。一般一个Python函数也可以称为一个子程序,当Python调用一个子程序的时候,子程序将接管整个程序直到程序返回或抛出一个异常。def foo(): bar()def bar(): pass标准的Python解释器是用C语言写的,...转载 2018-08-06 18:54:17 · 113 阅读 · 0 评论 -
异步网络爬虫的Python实现(4)
本文继续上一节的话题:异步网络爬虫的实现。开启协程现在我们正式回到我们之前实现网络爬虫的话题。一个网络爬虫的实现主要有以下几个步骤:抓取一个页面,分析页面链接,加载链接到一个队列。这样直到整个网站页面抓取完成,但是这里受限于客户端和服务器,我们只抓取一定数量的页面。为了保证效率,当一个页面抓取完成后,程序要立即从队列中获取下一个页面的链接,并进行抓取。如果队列中的链接没有那么多的话,程...转载 2018-08-06 18:56:28 · 146 阅读 · 0 评论 -
python3中构造无头浏览器
无头浏览器可以减少对电脑资源的消耗:#1无头浏览器phantomjs# dc = {# 'phantomjs.page.customHeaders.User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 S...原创 2018-08-03 14:26:54 · 1286 阅读 · 0 评论 -
python3爬虫 - cookie登录
实战1:使用cookie登录哈工大ACM站点获取站点登录地址http://acm.hit.edu.cn/hoj/system/login查看要传送的post数据user和passwordCode: #!/usr/bin/env python# -*- coding: utf-8 -*-"""__author__ = 'pi'__email__ = 'pipis...转载 2018-08-08 16:25:19 · 1298 阅读 · 0 评论 -
爬虫(十四):scrapy下载中间件
下载器中间件是介于Scrapy的request/response处理的钩子框架,是用于全局修改Scrapy request和response的一个轻量、底层的系统。激活Downloader Middleware要激活下载器中间件组件,将其加入到 DOWNLOADER_MIDDLEWARES 设置中。 该设置是一个字典(dict),键为中间件类的路径,值为其中间件的顺序(order)。像下面...转载 2018-08-23 11:56:26 · 159 阅读 · 0 评论 -
webdriver爬虫#document问题
如图,我们想获取#document下面body的内容。如果使用1.driver = webdriver.Chrome()2.driver.get(url)3.driver.find_element_by_xpath此时会发现#document下的body中的内容为空。document is a virtual element, which doesn't really ...转载 2018-09-12 10:09:06 · 1689 阅读 · 0 评论 -
selenium中使用阿布云代理
from selenium import webdriverimport stringimport zipfileimport os# 代理服务器proxyHost = "http-dyn.abuyun.com"proxyPort = "9020"# 代理隧道验证信息 使用自己的proxyUser = "H8S586W474G3FFFF"proxyPass = "F516...转载 2018-09-12 10:57:22 · 2418 阅读 · 1 评论 -
python Selenium chromedriver 自动化超时报错:你需要使用多标签保护罩护体
在使用selenium + chrome 作自动化测试的时候,有可能会出现网页连接超时的情况如果出现网页连接超时,将会导致 webdriver 也跟着无法响应,不能继续进行任何操作即时是去打开新的连接也会报Time out错误那么如果有很多连接要去做弹窗抓取,却不想因为其中一两个页面超时而中断进程该怎么办呢?这时候你需要一个备用标签做金刚保护罩来护体!具体的思路是在打开需求页面...转载 2018-11-07 10:56:23 · 2903 阅读 · 1 评论