
发表于:2017-10-30 15:02 作者:周小董 来源:51Testing软件测试网采编
字体:推荐标签:软件测试工具PythonSelenium
前面我们接触到的好空间 软件,都是使用requests+BeautifulSoup组合对静态网页进行请求和数据解析,若是JS生成的内容,也介绍了通过寻找API借口来获取数据。
所谓死链,一句话就是“打不开的链接”,一样平常状态下所发生的死链是因为网页被删去、上海网站建设改版(原本旧url因为站点改版url发生了新的改变,上海网站建设改版后精确的url是改版后的链接,当用户输入原本的url地址时就是过错的链接因而该页面不存在)、过错或许是程序主动生成等缘故原由。每完成一个创造之树的分之就会相应的开启下一个技能,但是还会有一些大的任务(就是文字比较多的那些任务),比如钓鱼,比如用魔法指南针,前几次玩的时候就碰到了魔法指南针任务卡住的问题,因为这个魔法释放有距离限制,任务是要求用魔法指南针寻找一个最近的密室,但是附近的密室都被我在前期挖矿的时候发现了,结果直接导致这个任务失败,卡关了就,只能重开,然后先去边缘地区找矿藏(反正有传送门),这个魔法合成之后,要先释放一次,创造树才能继续发展,然后还会再出现一个任务,然你再放一次找密室,所以第一次放的时候,你可以不用去找,放了魔法就好,第二次的时候,再去找那个密室。它是互联网上得到资源地址和访问方法的一种表示,互联网上每一个网页或者资源都有自己的唯一url,没有任何两个不同的网页或者文件地址是相同的或者重复的,我们可以理解为这个url等于唯一访问地址,在浏览器里没有任何选择性,那么淘宝天猫上每一个产品都有自己的唯一url。
一、Selenium简介
Selenium是一个用于应用的功能工具,Selenium 直接运行在中,就像真正的用户在操作一样。
由于这个性质,Selenium也是一个强大的网络数据采集工具,其可以让浏览器自动加载页面,获取需要的数据,甚至页面截图,或者是判断网站上某些动作是否发生。
Selenium自己不带浏览器,需要配合第三方浏览器来使用。支持的浏览器有Chrome、Firefox、IE、Phantomjs等。
(2) 设备问题:当你使用当前设备浏览网站出现问题时,可以换其他设备浏览网站,看打开是否正常。网站要进行改动,有的时候是需要用到代码,要是自己的会的话,不需要找别人来帮忙,还可以看出网站有些代码是影响我们网站打开的速度,这样我们就可以看看能不能处理掉,提高网站打开的速度,达到优化的效果,那么html网站代码如何优化,为大家讲解一下。5、提交以上操作,点击工具栏的“提交”按钮,在弹出的窗口点击“执行”好空间 软件,操作过程中可能要重启电脑,点击“是” 以让程序在重启模式下完成这些等待执行的操作,如图:。
什么程序(甚至后台服务)可以被运行,什么程序不可以被运行。这里可以肯定的告诉大家这个系统进程不是病毒,请注意后台有哪些大的程序在运行或者感染病毒,当电脑什么程序也不运行的时候我们会发现cpu占有数 值能达到99%,是核心虚拟出来的,就会发现: 否 木马,system idle process system占用cpu时间变化。当然也可以使用三台vps服务器,两台运行爬虫节点程序,将ip改为控制节点主机的公网ip,一台运行控制节点程序,进行分布式爬取,这样更贴近真实的爬取环境。
Phantomjs是一个“无头”浏览器,也就是没有界面的浏览器,但是功能与普通的浏览器无异。
二、在中使用Selenium获取QQ空间好友说说
之前使用pip安装好了selenium,直接在代码中import即可。
刷qq空间说说的q友们应该都会发现,好友发布自己每天的说说动态时,都会很去点赞增加人气,此站推荐一款刷qq空间说说赞工具给大家使用,就能轻松的针对指定的说说进行刷赞操作,大家快来下载吧。现在很的三星i9003手机的系统都是2.3.6了,可是很不知道2.3.6的系统怎么获取root权限,下面就来说说获取root权限的详细教程吧,其实教程还是挺简单的,在电脑上一键刷入root包,然后重新再启动手机就可以了,下面来看看具体的操作吧:。要删除的话,在电脑上删除更简单些,实际上个性签名就是别人说的说说,关于说说的问题当然要到空间解决喽,先到空间里,都会看到你发的说说,每条信息后面的有一栏,不是有一个“……”么。
我们需要爬取的页面时这样的:

QQ空间好友说说的链接为:{好友QQ号}/311我们抓取他发的说说的时间和内容。
python3运行代码
依旧先上代码:
# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
from selenium import webdriver
import time
# #使用Selenium的webdriver实例化一个浏览器对象,在这里使用Phantomjs
# driver = webdriver.PhantomJS(executable_path=r"D:\phantomjs-2.1.1-windows\bin\phantomjs.exe")
# #设置Phantomjs窗口最大化
# driver.maximize_window()
# 登录QQ空间
def get_shuoshuo(qq):
chromedriver = r"D:\soft\chromedriver_win32\chromedriver.exe"
driver = webdriver.Chrome(chromedriver)
#使用get()方法打开待抓取的URL
driver.get('http://user.qzone.qq.com/{}/311'.format(qq))
time.sleep(5)
#等待5秒后,判断页面是否需要登录,通过查找页面是否有相应的DIV的id来判断
try:
driver.find_element_by_id('login_div')
a = True
except:
a = False
if a == True:
#如果页面存在登录的DIV,则模拟登录
driver.switch_to.frame('login_frame')
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').clear() # 选择用户名框
driver.find_element_by_id('u').send_keys('QQ号码')
driver.find_element_by_id('p').clear()
driver.find_element_by_id('p').send_keys('QQ密码')
driver.find_element_by_id('login_button').click()
time.sleep(3)
driver.implicitly_wait(3)
#判断好友空间是否设置了权限,通过判断是否存在元素ID:QM_OwnerInfo_Icon
try:
driver.find_element_by_id('QM_OwnerInfo_Icon')
b = True
except:
b = False
#如果有权限能够访问到说说页面,那么定位元素和数据,并解析
if b == True:
driver.switch_to.frame('app_canvas_frame')

content = driver.find_elements_by_css_selector('.content')
stime = driver.find_elements_by_css_selector('.c_tx.c_tx3.goDetail')
for con, sti in zip(content, stime):
data = {
'time': sti.text,
'shuos': con.text
}
print(data)
pages = driver.page_source
soup = BeautifulSoup(pages, 'lxml')
#尝试一下获取Cookie,使用get_cookies()
cookie = driver.get_cookies()
cookie_dict = []
for c in cookie:
ck = "{0}={1};".format(c['name'], c['value'])
cookie_dict.append(ck)
i = ''
for c in cookie_dict:
i += c
print('Cookies:', i)
print("==========完成================")
driver.close()
driver.quit()
if __name__ == '__main__':
get_shuoshuo('好友QQ号码')
获取到的数据截图如下:

三、代码简析
1.照例,导入需要使用的模块:
from bs4 import BeautifulSoup

from selenium import webdriver
import time
2.使用Selenium的webdriver实例化一个浏览器对象,在这里使用Phantomjs:
system.setproperty("webdriver.chrome.driver","d:\\chromedriver.exe")。driver = selenium::webdriver.for :phantomjs。from selenium import webdriver class register(unittest.testcase): def setup(self): self.driver = webdriver.firefox() self.driver.implicitly_wait(30) self.base_url = " https://www.example.com/" self.verificationerrors = [] self.accept_next_alert...。
3.设置Phantomjs窗口最大化:
driver.maximize_window()
4.主函数部分
使用get()方法打开待抓取的URL:
uin=hxxp://ctc.qzs.qq.com/qzone/v5/owner2/ic/feeds.html/mood/&unikey=http://user.qzone.qq.com/q.com/cgi-bin/emotion_cgi_getcmtreply_v6。qq空间2:https://user.qzone.qq.com/270231753/infocenter。qq空间1:https://user.qzone.qq.com/272799479/infocenter。
等待5秒后,判断页面是否需要登录,通过查找页面是否有相应的DIV的id来判断:
try:
driver.find_element_by_id('login_div')
a = True
except:
a = False
如果页面存在登录的DIV,则模拟登录:
driver.switch_to.frame('login_frame') #切换到登录ifram
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').clear()#选择用户名框
driver.find_element_by_id('u').send_keys('QQ号')
driver.find_element_by_id('p').clear()#选择密码框
driver.find_element_by_id('p').send_keys('QQ密码')
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-116032-1.html
好看
你存万八千的
因为学校按时要关门