import requests
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# kuaidaili 结果排序 默认 按响应速度(从快到慢)VIP 按最后检测时间(从近到远)VIP
"""
订单号*
 查看我的订单  从网页提取
提取数量*
 数量该怎么填?
所在地区
 多个地区用英文逗号分隔  如何筛选地区?
排除地区
 多个地区用英文逗号分隔  查看实时地区分布>>
筛选端口号
 多个端口用英文逗号分隔  查看实时端口分布>>
排除端口号
 多个端口用英文逗号分隔
筛选IP段
 筛选以特定部分开头的IP
排除IP段
 排除以特定部分开头的IP
运营商
无所谓 联通/网通 电信 移动 铁通 教育网 阿里云
匿名度
高匿名 匿名 透明 查看实时匿名度分布>>
响应速度
极速(<1秒) 快速(1~3秒) 慢速(>3秒) 查看实时速度分布>>
代理协议
全部 HTTP HTTPS (同时也支持HTTP) 查看实时协议分布>>
POST支持
全部 GET POST (同时也支持GET) 查看GET/POST分布>>
代理稳定性新
不筛选 稳定VIP 非常稳定SVIP 了解代理稳定性
结果排序
默认 按响应速度(从快到慢)VIP 按最后检测时间(从近到远)VIP
结果定制VIP
IP:Port 地区 匿名度 代理协议 响应速度(秒)
历史提取次数专业版把计数清零
提取结果包含的字段(顺序排列, 英文逗号分隔)
浏览器支持
谷歌浏览器(Chrome) IE / 360浏览器 火狐浏览器(Firefox) 其它浏览器 如何勾选?

安卓手机浏览器 iPhone手机浏览器 iPad浏览器 查看浏览器支持分布>>
IP去重
过滤今天提取过的IP
返回格式
文本 jsonVIP xmlVIP
结果分隔符
\r\n分隔 \n分隔 空格分隔 |分隔 自定义
"""

"""
结果排序 按响应速度(从快到慢)
匿名度 高匿名
代理协议 HTTP
#http://dev.kuaidaili.com/api/getproxy/?orderid=123112322452122&num=30&b_pcchrome=1&b_pcie=1&b_pcff=1&protocol=1&method=2&an_ha=1&sp1=1&quality=1&sort=1&sep=2

"""

proxyip_d = {}
def gen_proxyip_dict_qps(
        url_proxyip='http://dev.kuaidaili.com/api/getproxy/?orderid=123112322452122&num=proxyip_num&b_pcchrome=1&b_pcie=1&b_pcff=1&protocol=1&method=2&an_ha=1&sp1=1&quality=1&sort=1&sep=2',
        proxyip_num=30, peroid_seconds=300):
    global proxyip_d

url = url_proxyip.replace('proxyip_num', str(proxyip_num))
    # floating point number
    # Return the current time in seconds since the Epoch.
    current_time = time.time()
    if current_time - proxyip_d['last_request_timestamp'] > peroid_seconds:
        try:
            r = requests.get(url)
            proxyip_d['last_request_timestamp'] = int(time.time())
            if r.status_code == 200:
                # 不校验返回结果,假设合法且可用
                l = r.text.split('\n')
                proxyip_d['ip_list'] = [i for i in set(l)]
        except Exception as e:
            ## log
            s = '%s%s' % ('', e)

def fetch_one_proxyip(url_proxyip='http://dev.kuaidaili.com/api/getproxy/?orderid=123112322452122&num=proxyip_num',
                      proxyip_num=30, peroid_seconds=300):
    global proxyip_d
    if 'ip_list' not in proxyip_d:
        proxyip_d['ip_list'] = []
    if 'last_request_timestamp' not in proxyip_d:
        proxyip_d['last_request_timestamp'] = 0
    gen_proxyip_dict_qps(url_proxyip=url_proxyip, proxyip_num=proxyip_num, peroid_seconds=peroid_seconds)

# 根据商家返回结果的排序规则,优先使用前ip
    try:
        r = proxyip_d['ip_list'][0]
        del proxyip_d['ip_list'][0]
    except Exception as e:
        gen_proxyip_dict_qps(peroid_seconds=0)
        r = 'localhost'
        print(e)
    print(proxyip_d['ip_list'])
    print(r)
   # r = 'localhost'
    return r

from selenium import webdriver
from  bs4 import BeautifulSoup
import json
import time

from selenium.webdriver.common.proxy import *

f, s_l = 'biz0.txt', []

with open(f, 'r', encoding='utf-8') as fo:
    for i in fo:
        s_l.append(i.replace('\n', ''))

#browser = webdriver.Chrome().minimize_window()
# def spider_l_t_w(s_wd='长尾词'):
#     #global browser
#     # browser = webdriver.Chrome()
#
#     myproxyip = fetch_one_proxyip() # IP:PORT or HOST:PORT
#
#     chrome_options = webdriver.ChromeOptions()
#     chrome_options.add_argument('--proxy-server=%s' % myproxyip)
#
#     # chrome = webdriver.Chrome(chrome_options=chrome_options)
#     # chrome_options = Options()
#     # chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)
#     browser = webdriver.Chrome(chrome_options=chrome_options)
#
#     url_seed = 'https://m.baidu.com/s?word=s_wd'
#     url_seed='http://www.zzyjschina.com.cn/shenzhen.html'
#    # url_seed = 'https://www.baidu.com/s?word=s_wd'
#
#     url_seed = url_seed.replace('s_wd', s_wd)
#     print(url_seed)
#     #browser.set_window_size(30, 30)
#
#     browser.get(url_seed)
#     # time.sleep(2)
#     # browser.minimize_window()
#     rd = BeautifulSoup(browser.page_source, 'html.parser').find_all('a', class_='rw-item')
#     res_d_l = [{'contents': d.contents, 'href': d.attrs['href']} for d in rd]
#     browser.quit()
#     #browser.close()
#     return res_d_l

def spider_l_t_w(s_wd='长尾词'):
    #global browser
    # browser = webdriver.Chrome()

myproxyip = fetch_one_proxyip() # IP:PORT or HOST:PORT

# chrome_options = webdriver.Firefox()
    # chrome_options.add_argument('--proxy-server=%s' % myproxyip)
    #
    # # chrome = webdriver.Chrome(chrome_options=chrome_options)
    # # chrome_options = Options()
    # # chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)
    # browser = webdriver.Chrome(chrome_options=chrome_options)

myProxy =fetch_one_proxyip()

proxy = Proxy({
        'proxyType': ProxyType.MANUAL,
        'httpProxy': myProxy,
        'ftpProxy': myProxy,
        'sslProxy': myProxy,
        'noProxy': ''  # set this value as desired
    })

browser = webdriver.Firefox(proxy=proxy)
    print(browser)
    url_seed = 'https://m.baidu.com/s?word=s_wd'
   # url_seed='http://www.zzyjschina.com.cn/shenzhen.html'
   # url_seed = 'https://www.baidu.com/s?word=s_wd'

url_seed = url_seed.replace('s_wd', s_wd)
    print(url_seed)
    #browser.set_window_size(30, 30)

browser.get(url_seed)
    # time.sleep(2)
    # browser.minimize_window()
    rd = BeautifulSoup(browser.page_source, 'html.parser').find_all('a', class_='rw-item')
    res_d_l = [{'contents': d.contents, 'href': d.attrs['href']} for d in rd]
    browser.quit()
    #browser.close()
    return res_d_l

save_c, save_limit, fw = 0, 30, open('biz0.res.txt', 'a', encoding='utf-8')

for i in s_l:
    try:
        d = spider_l_t_w(i)
        s = json.dumps(d, ensure_ascii=False)
    except Exception as e:
        s = e
    s = '%s\n%s\n\n' % (i, s)
    fw.write(s)
    save_c += 1
    if save_c == save_limit:
        fw.close()
        fw = open('biz0.res.txt', 'a', encoding='utf-8')

d = 9

-- google  不能

-- firefox ok

myProxy = fetch_one_proxyip()

proxy = Proxy({
'proxyType': ProxyType.MANUAL,
'httpProxy': myProxy,
'ftpProxy': myProxy,
'sslProxy': myProxy,
'noProxy': '' # set this value as desired
})
browser = webdriver.Firefox(proxy=proxy)
print(browser)
url_seed = 'https://m.baidu.com/s?word=s_wd'
url_seed = url_seed.replace('s_wd', 'fddf')
print(url_seed)
browser.set_window_size(30, 30)
try:
browser.get(url_seed)
except Exception as e:
print('---------', e)

代理ip proxy的更多相关文章

  1. 用代理IP进行简单的爬虫——爬高匿代理网站

    用西刺代理网站的IP爬高匿代理网站 import re import _thread from time import sleep,ctime from urllib.request import u ...

  2. Python3网络爬虫(四):使用User Agent和代理IP隐藏身份《转》

    https://blog.csdn.net/c406495762/article/details/60137956 运行平台:Windows Python版本:Python3.x IDE:Sublim ...

  3. Python3网络爬虫(3):使用User Agent和代理IP隐藏身份

    Python版本: python3 IDE: pycharm2017.3.3 一.为何要设置User Agent 有一些网站不喜欢被爬虫访问,所以会检测对象,如果是爬虫程序,他就会不让你访问,通过设置 ...

  4. python爬虫学习(3):使用User-Agent和代理ip

    使用User-Agent方法一,先建立head,作为参数传进去 import urllib.requestimport json content=input("请输入需要翻译的内容:&quo ...

  5. 使用User Agent和代理IP隐藏身份

    一.为何要设置User Agent 有一些网站不喜欢被爬虫程序访问,所以会检测连接对象,如果是爬虫程序,也就是非人点击访问,它就会不让你继续访问,所以为了要让程序可以正常运行,需要隐藏自己的爬虫程序的 ...

  6. python扫描proxy并获取可用代理ip

    今天咱写一个挺实用的工具,就是扫描并获取可用的proxy 首先呢,我先百度找了一个网站:http://www.xicidaili.com 作为例子 这个网站里公布了许多的国内外可用的代理的ip和端口 ...

  7. python扫描proxy并获取可用代理ip列表

    mac或linux下可以work的代码如下: # coding=utf-8 import requests import re from bs4 import BeautifulSoup as bs ...

  8. go colly proxy 代理ip 动态 ip

    package main import ( "fmt" "github.com/gocolly/colly" "github.com/gocolly/ ...

  9. 利用代理IP池(proxy pool)搭建免费ip代理和api

    先看这里!!!---->转载:Python爬虫代理IP池(proxy pool) WIIN10安装中遇到的问题: 一.先安装Microsoft Visual C++ Compiler for P ...

随机推荐

  1. 牛客网 牛可乐发红包脱单ACM赛 A题 生成树

    [题解] 其实就是求两棵树不同的边有多少条.那么我们用一个set来去重即可. #include<cstdio> #include<cstring> #include<se ...

  2. sql的case when用法

    select t.C_OPERATE_TIME MODIFY_TIME, t.c_code EMPLOYEE_CODE, t.c_name EMPLOYEE_NAME, CASE t.c_employ ...

  3. Oracle臨時表空間過大問題解決

    查詢資料庫伺服器時,發現資料庫伺服器磁片使用空間達到了98%,分析總共的資料檔案也不可能達到如此大,經過查詢發現原來臨時表空間的使用方式達到了 32G,導致磁碟空間使用緊張.搜索了相應的文檔與資料後, ...

  4. poj 1780 , poj 1392 欧拉回路求前后相互衔接的数字串

    两道题目意思差不多 第一题是10进制 , 第二题是2进制的 都是利用欧拉回路的fleury算法来解决 因为我总是希望小的排在前面,所以我总是先将较小数加入栈,再利用另一个数组接收答案,但是这里再从栈中 ...

  5. POJ 1300 最基础的欧拉回路问题

    题目大意: 从0~n-1编号的房间,从一个起点开始最后到达0号房间,每经过一扇门就关上,问最后能否通过所有门且到达0号房间 我觉得这道题的输入输出格式是我第一次遇到,所以在sscanf上也看了很久 每 ...

  6. [HDU4348]To the moon(主席树)

    传送门 对于这个题,显然要打lazy标记了,但是lazy标记pushdown的时候肯定会增加一大堆节点,然后就MLE了.(题解这么说的,我其实不会pushdown) 所以,就换另一种方式,把标记直接打 ...

  7. 【树状数组+dp】HDU 5542 The Battle of Chibi

    http://acm.hdu.edu.cn/showproblem.php?pid=5542 [题意] 给定长为n的序列,问有多少个长为m的严格上升子序列? [思路] dp[i][j]表示以a[i]结 ...

  8. 【并查集】F.find the most comfortable road

    https://www.bnuoj.com/v3/contest_show.php?cid=9146#problem/F [题意] 给定n个城市和m条带权边,q次查询,问某两个城市之间的所有路径中最大 ...

  9. [NOIP2001] 普及组

    装箱问题 裸01背包,速刷过 #include<cstdio> #include<iostream> #include<cmath> using namespace ...

  10. list如何remove

    http://blog.sina.com.cn/s/blog_621b6f0e0100s5n5.html 在java中对list进行操作很频繁,特别是进行list启遍历,这些操作我们都会,也很熟悉,但 ...