前言:由于想增加自己的CSDN的访问量,于是打算利用python实现自动登录我的博客,但在网上找的方法都是让我用webbrowser访问,再用os.system()来关闭浏览器,但是不知为什么只有当我关闭程序时,os.system()才自动帮我关闭网页,转念一想,很久之前用过selenium来爬取网页,我自己都忘了,后面代码就非常简单了:
from selenium import webdriver
from time import sleep
i = 0
while i>= 0:
driver = webdriver.Chrome()
driver.minimize_window()
driver.get('https://blog.csdn.net/qq_41253208/article/details/86683757')
# driver.minimize_window() 最小化窗口
sleep(30)
i += 1
print("浏览了"+str(i)+"遍")
# driver.close() 关闭最近一个网页
driver.quit()
缺点:偶尔会挂掉,访问几百次之后,ip会被封掉。。。。。
ip会被封我也预料到的,可是刷了几百点击数后,我已经回不了头了,睡醒一觉,做了个2.0版本
参考:
https://blog.csdn.net/huilan_same/article/details/52329804
https://blog.csdn.net/u011541946/article/details/69681153
前言:由于想增加自己的CSDN的访问量,于是打算利用python实现自动登录我的博客,但在网上找的方法都是让我用webbrowser访问,再用os.system()来关闭浏览器,但是不知为什么只有当我关闭程序时,os.system()才自动帮我关闭网页,转念一想,很久之前用过selenium来爬取网页,我自己都忘了,后面代码就非常简单了:from selenium import webdrive...
Selenium是一款免费的分布式的自动化测试工具,支持多种开发语言,无论是C、 java、ruby、python、或是C# ,你都可以通过selenium完成自动化测试。本文以一个简单的小例子,简述C# 利用Selenium进行浏览器的模拟操作,仅供学习分享使用,如有不足之处,还请指正。
涉及知识点
要实现本例的功能,除了要掌握Html ,JavaScript,CSS等基础知识,还涉及以下知识点:
log4net:主要用于日志的记录和存储,本例采用log4net进行日志记录,便于过程跟踪和问题排查,关于log4net的配置和介绍,之前已有说明,本文不做赘述。
Queue:队列
最近在编写selenium自动化测试框架,遇到一个烦人的问题, driver.get()不执行完,浏览器页面一直在转圈圈,下面的代码根本就不会执行,耗时一天的时间终于解决了。
原理:driver.get() 方法默认等待页面加载完成,再往下执行。
解决方案1:
设置页面超时时间,超过该时间的时候,就停止加载页面
driver.set_page_load_timeout(2)
driver.get(cls.base_url)
# 加载谷歌浏览器驱动
path = "/Users/juanmao/PycharmProjects/chromedriver.exe"
driver = webdriver.Chrome(path)
# 打开百度搜索网址首页
driver.get('http://www.baidu.com')
print(d.
用selenium爬网页,很多时候页面里面的有用信息其实已经加载完成了,但是由于页面加载没有彻底完成,下一步操作仍然不会执行,很耽误时间。
然后很多其他文章中提到了一种方法:d.set_page_load_timeout(10)然而在我的测试下,这种方法不论是在firefox下还是在PhantomJS下,都不起作用。所以我查了一下文档,还有一种设置超时的方法:
from selenium im
all_window_height = [] # 创建一个列表,用于记录每一次拖动滚动条后页面的最大高度
all_window_height.append(driver.execute_script("return document.body.scrollHeight;")) #当前页面的最大高度加入列表
while True:
driver.execute_script("scro...
driver.get(url)
这样用循环的方式爬取时,每调用一次driver时,会打开一个浏览器窗口,多次打开会很难受,而且系统也受不了,所以可以用headless操作,不用打开窗口直接获取源码。
option = webdriver.FirefoxOptions()
driver = webdriver.Chrome() # 如果使用Chrome浏览器
driver = webdriver.Firefox() # 如果使用Firefox浏览器
4. 打开目标网页:
```python
driver.get("https://www.example.com") # 替换成你要打开的网页URL
5. 找到需要输入的元素,并使用`send_keys()`方法进行输入。你可以使用浏览器的开发者工具来查找元素的定位信息(如id、name、XPath等):
```python
element = driver.find_element_by_id("username") # 替换成你要输入的元素的id
element.send_keys("your_username") # 替换成你要输入的值
6. 类似地,你可以使用`send_keys()`方法来输入其他表单元素(如密码、文本框等)。
7. 最后,关闭浏览器:
```python
driver.quit()
这样,你就可以使用Selenium实现网页自动输入了。记得根据实际情况替换代码中的URL、元素定位信息和输入值。如果有任何问题,请随时提问。