selenium

selenium库

  1. Selenium [1] 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
    https://blog.csdn.net/liuuil4421640/article/details/79001429
    https://blog.csdn.net/baidu_36831253/article/details/79838740

  2. 编码和解码
    python的中字符转码是一件很头疼的事情,本来期望结果输出的是中文,结果来一段像这样\xe4\xbd\xa0\xe5\xa5\xbd像是乱码的字符串>>> u = ‘中文’ # 指定字符串类型对象u

>>> str1 = u.encode('gb2312')  # 以gb2312编码对u进行编码,获得bytes类型对象
>>> print(str1)
b'\xd6\xd0\xce\xc4'
>>> str2 = u.encode('gbk') # 以gbk编码对u进行编码,获得bytes类型对象
>>> print(str2)
b'\xd6\xd0\xce\xc4'
>>> str3 = u.encode('utf-8')   # 以utf-8编码对u进行编码,获得bytes类型对象
>>> print(str3)b'\xe4\xb8\xad\xe6\x96\x87'
>>> u1 = str1.decode('gb2312') # 以gb2312编码对字符串str进行解码,获得字符串类型对象
>>> print('u1')
'中文'
>>> u2 = str1.decode('utf-8')  # 报错,因为str1是gb2312编码的
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 0: invalid continuation byte
  1. 实现页面的自动加载的小例子–下载炉石传说的卡片
from selenium import webdriverfrom urllib 
import request
import time
import os
from bs4 import BeautifulSoup
#测试webdriver 是否正常运行
def xiazai1():    
	url = 'http://cha.17173.com/hs/list'    
	#加载浏览器的驱动器    
	driver = webdriver.Chrome(executable_path='D:\\chromedriver.exe')    
	#打开浏览器,访问网站    
	driver.get(url)    
	for i in range(1):        
		#执行js代码让滚动条向下滚动到底部        
		driver.execute_script('window.scrollTo(0,document.body.scrollHeight);')        
		#每一次滚动都要休眠一段:减缓加载的速度,防止被屏蔽,网速也加载不了这么快        
		time.sleep(2)    
	#获取页面资源    
	content = driver.page_source    
	#content 为 str类型,通过utf-8进行编码获得byte类型,然后以二进制类型写入文件    
	file =open('lushi.html','w',encoding='utf-8')    
	file.write(content)    
	file.close()
	# xiazai1()
	#下载炉石传说的所有的卡牌
	def xiazai2():    
	#查看路径是否存在    
		path ='D:\\LuShi'    
		if os.path.exists(path):        
			pass    
		else:
        	os.makedirs(path)    
    #没有指定编码格式会报gbk解析错误    
    file = open('lushi.html','r',encoding='utf-8')    
    content = file.read()    
    file.close()    
    soup = BeautifulSoup(content,"html.parser")    
    games_list = soup.select('.games_list')[0]    
    lis=games_list.find_all('li')    
    for item in lis:        
	    img=item.find('img')       
	    url = img['src']        
	    name = url.split('/')[-1].split('?')[0]        
	    request.urlretrieve(url,path+'\\'+name)
   xiazai2(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值