selenium+chromedriver刷点击量
#coding=utf-8 import re
import time
import json
import requests
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC URL = u'www.baidu.com' def get_http_proxy_from_pool():
proxy = {}
try:
url = "xxxxxxxxxxxxxxxxxxxxxxxxxx"
response = requests.get(url)
jsonstr = response.text
result = json.loads(jsonstr)
if result.get("code") == 1:
proxy_list = result.get("data")
proxy_item = proxy_list[0]
proxy = {"http":"http://%s:%s"%(proxy_item.get("proxy_ip"),proxy_item.get("proxy_port"))}
else:
raise Exception("failed to get http proxy.")
except Exception as e:
print str(e)
finally:
return proxy def get_desired_capabilities():
proxy = get_http_proxy_from_pool().get(u"http")
print u"当前代理: %s" % proxy
options = webdriver.ChromeOptions()
desired_capabilities = options.to_capabilities()
desired_capabilities[u'proxy'] = {
u"httpProxy": proxy,
u"ftpProxy": proxy,
u"sslProxy": proxy,
u"noProxy": None,
u"proxyType": u"MANUAL",
u"class": u"org.openqa.selenium.Proxy",
u"autodetect": False}
return desired_capabilities def get_chrome_browser():
desired_capabilities = get_desired_capabilities()
browser = webdriver.Chrome(desired_capabilities = desired_capabilities)
return browser def get_headless_chrome_browser():
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('headless')
desired_capabilities = get_desired_capabilities()
browser = webdriver.Chrome(desired_capabilities = desired_capabilities, chrome_options=chrome_options)
return browser def search_keyword(keyword):
browser = get_headless_chrome_browser()
#设置超时时间
wait = WebDriverWait(browser, 5)
try:
browser.get(URL)
#等待搜索框与搜索按钮加载完成
input = wait.until(EC.presence_of_element_located((By.ID, u'searchKey')))
input.send_keys(keyword)
button = wait.until(EC.element_to_be_clickable((By.ID, u'btn-search')))
button.click()
print u"%s搜索成功" % keyword
except Exception as e:
print(u'搜索过程出错')
finally:
browser.delete_all_cookies()
browser.close() def main():
results = get_company_from_mysql()
for result in results:
keyword = result[0] if result else ""
print keyword
search_keyword(keyword)
time.sleep(1) if __name__=='__main__':
main()
selenium+chromedriver刷点击量的更多相关文章
- Python一日一练05----怒刷点击量
功能 自己主动获取CSDN文章列表,并对每篇文章添加点击量. 源代码 import urllib.request import re import time import random from bs ...
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...
- python通过代理刷网页点击量
python通过代理刷网页点击量 更新异常处理情况 @time 2013-0803 更新循环里计数问题和随机等待时间问题 #!/usr/bin/python #-*- coding:utf-8 -*- ...
- 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图
先上结果: 之前 在公司业务中用过java+Selenium+ChromeDriver ,使用起来非常顺手,可以完美模拟真实的用户浏览行为.最近休息的时候想用C#也试一下,于是有了本文. 实现原理一样 ...
- selenium + ChromeDriver 实战系列之启信宝(一)
之前写了一篇selenium + ChromeDriver的一些入门的知识,这篇博客里面找了启信宝这个网站,简单的进行了一个实战练习.本篇博客的结构如下: 首先会给出一些使用seleniu ...
- phpcms文章点击量统计方法
phpcms用户广大,很好用,很傻瓜.设计思路也很好,对cms的常见功能都有设计,可以作为自己开发的参考. 最近看了下phpcms的源码关于文章点击量统计的这块,自己记录下. 默认文章点击量显示的位置 ...
- PHPCMS V9 栏目列表调用文章点击量及评论数量方法
很多朋友在用Phpcms做站时,具体需要在列表页.首页调用文章列表调用文章的点击量和评论排行,那么怎么才能做到在Phpcms v9首页.频道页.列表页.推荐位等页面获取文章浏览量和评论统计呢? 原因起 ...
- PHPCMS V9 点击量排行调用方法
首先调用的标签代码如下: {pc:content action=”sitehits” siteid=”4″ num=”10″ order=”views DESC” cache=”3600″} {loo ...
- .net 新闻点击量修改,避免恶意刷新
DataTable dt = bll.GetNewsByID(id);//根据ID获取的新闻详细内容 if (dt != null && dt.Rows.Count > 0) { ...
随机推荐
- 前端利器Emmet
前端利器Emmet Emmet可以通过缩写生成代码片段,可以提升前端开发的效率.使用方法就是输入HTML或者CSS的缩写,然后按tab键自动生成.原文在这里 后代 > <!-- nav&g ...
- csrf 跨站请求伪造相关以及django的中间件
django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware来完成. 1.django中常用的中间件? - proces ...
- 也谈谈我对Docker的简单理解
Docker能解决什么问题呢?一个工具的出现必然需要解决一些问题,Docker也不例外,简单说说我们常见的2种情况Docker是如何解决的吧.1.程序在我这跑得好好的,在你那怎么就不行呢?!这是一个典 ...
- ASP.NET WebApi技术从入门到实战演练
一.课程介绍 曾经有一位不知名的讲师说过这么一句名言: 一门RPC技术不会,那么千万万门RPC技术将都不会!在今天移动互联网的时代,作为攻城师的我们,谁不想着只写一套API就可以让我们的Web, An ...
- 前端工程化系列[03]-Grunt构建工具的运转机制
在前端工程化系列[02]-Grunt构建工具的基本使用这篇文章中,已经对Grunt做了简单的介绍,此外,我们还知道了该如何来安装Grunt环境,以及使用一些常见的插件了,这篇文章主要介绍Grunt的核 ...
- virltualbox 升级之后 苹果虚拟机报The installed support driver doesn't match the version of the user解决方案
1.反安装virtualbox后,不要重启 2.删除virtualbox的安装目录 3.进入%userprofile% 目录 (比如: C:\users\me) 删除 .VirtualBox Virt ...
- 使用Nodpad++正则替换
例如有以下格式数据: 现在需要将每一行的10位长度的数字串后面增加等号“=”
- android学习十二(android的Content Provider(内容提供器)的使用)
文件存储和SharePreference存储以及数据存储一般为了安全,最好用于当前应用程序中訪问和存储数据.内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能 ...
- 单片机成长之路(51基础篇) - 013 MCS-51单片机控制详解–T2MOD
T2CON:定时器控制寄存器 寄存器地址0C8H,位寻址0C8H-0CFH. 位地址 CF CE CD CC CB CA C9 C8 位符号 TF2 EXF2 RCLK TCLK EXEN2 TR2 ...
- Jquery DataTables 获取表格数据及行数据
注意table变量是 1.jQuery DataTables 行号获取 $("#example tbody tr").on("click", function( ...