selenium&phantom实战--获取代理数据
获取快代理网站的数据
注意:

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# __author__ ='kong'
# 导入模块
from selenium import webdriver # 定义一个类用来存放代理数据
class Item(object):
ip = None
port = None
anonymous = None
type = None
support = None
local = None
speed = None # 主类
class GetProx(object):
def __init__(self):
self.startUrl = "http://www.kuaidaili.com/proxylist/"
self.urls = self.getUrls()
self.proxList = self.getProxyList(self.urls)
self.fileName = 'proxy.txt'
self.saveFile(self.fileName,self.proxList) # 获取所有要访问的url
def getUrls(self):
urls = []
for i in xrange(1,11):
url = self.startUrl + str(i)
urls.append(url)
return urls # 获取每个url的代理数据
def getProxyList(self,urls):
# 创建一个浏览器实例
browser = webdriver.PhantomJS()
proxyList = []
item = Item()
for url in urls:
# 向指定的url发送请求
browser.get(url)
# 智能等待5秒
browser.implicitly_wait(5)
# 获取网页上的代理表格数据
elements = browser.find_elements_by_xpath("//tbody/tr")
for element in elements:
item.ip = element.find_element_by_xpath("./td[1]").text.encode("utf8")
item.port = element.find_element_by_xpath("./td[2]").text.encode("utf8")
item.anonymous = element.find_element_by_xpath("./td[3]").text.encode("utf8")
item.type = element.find_element_by_xpath("./td[4]").text.encode("utf8")
item.support = element.find_element_by_xpath("./td[5]").text.encode("utf8")
item.local = element.find_element_by_xpath("./td[6]").text.encode("utf8")
item.speed = element.find_element_by_xpath("./td[7]").text.encode("utf8")
proxyList.append(item)
# 最后退出浏览器实例
browser.quit()
return proxyList # 代理数据写入文件中
def saveFile(self,fileName,proxyList):
with open(fileName,'w') as fp:
for each in proxyList:
fp.write(each.ip + "\t")
fp.write(each.port + "\t")
fp.write(each.anonymous +"\t")
fp.write(each.type + "\t")
fp.write(each.support + "\t")
fp.write(each.local + "\t")
fp.write(each.speed + "\t")
fp.write("\n") if __name__ == '__main__':
gp = GetProx()
selenium&phantom实战--获取代理数据的更多相关文章
- [Python爬虫] 之一 : Selenium+Phantomjs动态获取网站数据信息
本人刚才开始学习爬虫,从网上查询资料,写了一个利用Selenium+Phantomjs动态获取网站数据信息的例子,当然首先要安装Selenium+Phantomjs,具体的看 http://www.c ...
- Swift实战-豆瓣电台(三)获取网络数据
观看地址:http://v.youku.com/v_show/id_XNzMwMzQxMzky.html 这节内容,我们先说了怎么将storyboard中的组件在类中进行绑定.然后写了一个类用来获取网 ...
- 【python爬虫实战】使用Selenium webdriver采集山东招考数据
目录 1.目标 2.Selenium webdriver说明 2.1 为什么使用webdriver 2.2 webdriver支持浏览器 2.3 配置与使用说明 3.采集 3.1 分析网站 3.2 遍 ...
- 实时获取股票数据,免费!——Python爬虫Sina Stock实战
更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 实时股票数据的重要性 对于四大可交易资产:股票.期货.期权.数字货币来说,期货.期权.数字货币,可以从交 ...
- python爬虫实战(一)——实时获取代理ip
在爬虫学习的过程中,维护一个自己的代理池是非常重要的. 详情看代码: 1.运行环境 python3.x,需求库:bs4,requests 2.实时抓取西刺-国内高匿代理中前3页的代理ip(可根据需求自 ...
- selenium 获取table数据
public class Table { /** * @param args */ public static void main(String[] args) { // TODO Auto-gene ...
- python+selenium 自动化测试实战
一.前言: 之前的文章说过, 要写一篇自动化实战的文章, 这段时间比较忙再加回家过11一直没有更新博客,今天整理一下实战项目的代码共大家学习.(注:项目是针对我们公司内部系统的测试,只能内部网络访问, ...
- selenium抓取动态网页数据
1.selenium抓取动态网页数据基础介绍 1.1 什么是AJAX AJAX(Asynchronouse JavaScript And XML:异步JavaScript和XML)通过在后台与服务器进 ...
- iOS开发之Socket通信实战--Request请求数据包编码模块
实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...
随机推荐
- Python -- 图片处理
使用PIL库 转换图片格式(jpg --> png) from PIL import Image Image.open('E:/art.jpg').save('E:/art.png')
- Python&Appium实现安卓手机图形解锁
首先,在解锁状态下,建立一个Session,打开APP.然后,调用press_keycode()方法传入整型数值"26",锁定屏幕.通过implicitly_wait()方法等待两 ...
- Go 提高性能的特性
1.值的高效处理和存储,允许创建紧凑的数据结构,避免不必要的填充字节.紧凑的数据结构能更好地利用缓存.更好的缓存利用率可带来更好的性能. 2.函数的调用有开销,减少函数调用开销的解决方案是内联.简单的 ...
- 解决MySQL联表时出现字符集不一样
mysql 建表时都会设置表的字符集和排序规则,通常是 utf8,不过我这边习惯建表的字符集是 utf8mb4,排序规则是 utf8mb4_unicode_ci.有些 utf8mb4 的表默认排序规则 ...
- spark集群构建
一.spark启动有standalong.yarn.cluster,具体的他们之间的区别这里不在赘述,请参考官网.本文采用的是standalong模式进行搭建及将接使用. 1.首先去官网下载需要的sp ...
- Linux信号机制代码示例
1 基本功能: 本Blog创建了两个进程(父子进程): 父进程: 执行文本复制操作,当收到 SIGUSR1信号后,打印出现在文件复制的进度: 子进程: 每个固定时间段向父进程发送一个 SIGUSR1 ...
- bootstrap table分页,重新数据查询时页码为当前页问题
问题描述: 使用bootstrap table时遇到一个小问题,第一次查询数据未5页,翻页到第5页后,选中条件再次查询数据时,传到后端页码仍旧为5,而此时数据量小于5页,表格显示为未查询到数据. 处理 ...
- ionic组件清单
整理时间:2017-5-22 官网版本:v3.2.0 / 2017-05-10 / MIT Licensed / Release Notes
- [转]ng-grid Auto / Dynamic Height
本文转自:https://stackoverflow.com/questions/23396398/ng-grid-auto-dynamic-height I think I solved this ...
- Html5音频播放
Audio标签: 不需要下载任何的额外的浏览器插件 完全由浏览器自身实现音频的解码和播放 用法: <audio src="1.mp3" controls></au ...