selenium爬虫加载网页,查看请求信息,定位元素命令,selenium爬虫使用代理

1.selenium基本命令
加载网页
from selenium import webdriver 
driver = webdriver.PhantomJS(“c:/pantomjs.exe”)
driver.get("http://www.baidu.com/")
driver.save_screenshot("长城.png")  # 保存截屏图片
查看请求信息
driver.page_source  # 网页源码
driver.get_cookies()  # cookies信息
driver.current_url  # url地址
退出
driver.close() #退出当前页面
driver.quit()  #退出浏览器
定位元素命令
find_element_by_id (返回一个元素)
find_elements_by_xpath (返回一个包含元素的列表)
find_elements_by_link_text (根据连接文本获取元素列表)
find_elements_by_partial_link_text (根据连接包含的文本获取元素列表)
find_elements_by_tag_name (根据标签名获取元素列表)
find_elements_by_class_name (根据类名获取元素列表)
2.selenium爬虫使用代理
from selenium import webdriver
chome_options = webdriver.ChromeOptions()
chome_options.add_argument('--proxy-server=http://ip:port')
driver = webdriver.Chrome(chrome_options=chome_options)
3.例子1
from selenium import webdriver

driver =webdriver.Chrome()
driver.get("https://www.douban.com/")
ret1 = driver.find_element_by_id("anony-nav")
# 输出为:<selenium.webdriver.remote.webelement.WebElement (session="ea6f94544ac3a56585b2638d352e97f3", element="0.5335773935305805-1")>
ret2 = driver.find_elements_by_id("anony-nav")
#输出为:[<selenium.webdriver.remote.webelement.WebElement (session="ea6f94544ac3a56585b2638d352e97f3", element="0.5335773935305805-1")>]
driver.close()
例子2:一个漫画网站的图片源码里面div里面没有包含img标签,是js代码之后发送请求加载的。可以用selenium把加载之后的源码弄到手,然后在解析
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(url)
html = driver.page_source
soup = BeautifulSoup(html, "lxml")
image = soup.find('div', id='images').find('img').get('src')
print(image)
driver.close()
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Selenium来模拟浏览器操作,包括下拉页面加载等待并选择网页元素进行抓取。下面是一个基本的示例代码: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 启动浏览器 driver = webdriver.Chrome() # 打开网页 driver.get("https://example.com") # 下拉页面加载 driver.find_element_by_tag_name('body').send_keys(Keys.END) # 模拟按下End键 # 等待页面加载完成 wait = WebDriverWait(driver, 10) element = wait.until(EC.presence_of_element_located((By.ID, "target_element_id"))) # 选择网页元素进行抓取 target_element = driver.find_element_by_id("target_element_id") # 然后你可以提取该元素的文本或其他属性值 print(target_element.text) # 关闭浏览器 driver.quit() ``` 在上述示例中,我们使用了Chrome浏览器(需要安装ChromeDriver)作为示例,你也可以使用其他支持的浏览器。在`driver.get("https://example.com")`中,你需要替换为你想要抓取的网页URL。`driver.find_element_by_tag_name('body').send_keys(Keys.END)`模拟按下End键,实现下拉加载。然后,我们使用`WebDriverWait`等待指定的目标元素加载完成,通过元素的ID或其他定位方式选择并抓取目标元素。 希望对你有所帮助!如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值