selenium与python爬虫(五)【数据处理(目标四)百度翻译实例】

selenium获取网页源代码的区别

这个第一篇博客就已经写过了。但是这里要重申一下的是他的区别


drive=webdriver.Chrome()

drive.get('https://www.baidu.com/')
print(drive.page_source)

page_source是selenium返回的源代码,但是这里和我们通过requests库获取的区别在于。selenium是可以动态获取不断更新的,selenium更像是一个浏览器,她可以像浏览器一下直接获取Ajax里面显示的页面。
比如使用requests时爬取拉钩网
在这里插入图片描述
在这里插入图片描述
找不到,但是。
在这里插入图片描述

我们却可以再element里面找到,这是因为这玩意被加载到浏览器里面了所以selenium自然可以获取到,但时使用requests只是访问了其中一个网址,获取到的自然也就只有一个。关系如图,如果时使用requests访问的只有url_1而内容在url_2
在这里插入图片描述

实例

from selenium import webdriver
import time

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as Ec
drive=webdriver.Chrome()
drive.get('https://fanyi.baidu.com/?aldtype=16047#zh/en')

def set_word():

    try:
        InputTag=WebDriverWait(drive,10).until(
            Ec.presence_of_element_located((By.ID,'baidu_translate_input'))
        )
        InputTag.send_keys('你好')
    except Exception as e :
        print(e)
set_word()#百度会刷新一次所以要两次
time.sleep(2)
set_word()



print(drive.page_source)

目前结果(返回了Hello)
在这里插入图片描述
而对比以前(使用requests)
在这里插入图片描述

之后我们将他放在etree里面使用xpath或者直接使用re提取出翻译结果即可

声明

由于时间有限在这里插入图片描述
所以后续的代码就不写了,比较简单。好了基本上selenium需要使用的其实也就那么多。

猜你喜欢

转载自blog.csdn.net/FUTEROX/article/details/108503604