python3 selenium 获取JS动态页面title

2016/11/24 星期四 下午 10:09:29

from  selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import  ActionChains
import time
from selenium.common.exceptions import NoSuchElementException

driver = webdriver.Chrome()
driver.implicitly_wait(20)
driver.maximize_window()
driver.get("http://www.yibaolib.com/Login.aspx")

user = driver.find_element_by_css_selector('#ContentPlaceHolder1_txtPhone').send_keys('XXXXX')
pwd = driver.find_element_by_css_selector('#ContentPlaceHolder1_txtPwd').send_keys('XXXX')
# p=driver.find_element_by_css_selector('#ContentPlaceHolder1_txtPwd')

driver.find_element_by_css_selector('#ContentPlaceHolder1_txtPwd').send_keys(Keys.ENTER)

time.sleep(10)
# js = "var q=document.body.scrollTop=10000"
# driver.execute_script(js)
# 为了快速滑动,先设置超时时间为1秒
driver.implicitly_wait(1)

# 不停的滑啊滑
while True:
    driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
    try:
        # 定位页面底部的一个图片
        driver.find_element_by_xpath('//*[@id="waterfall"]/div[2]/div[33]/div/div/a')
        # 如果没抛出异常就说明找到了底部标志,跳出循环
        break
    except NoSuchElementException as e:
        # 抛出异常说明没找到底部标志,继续向下滑动
        pass

# 将超时时间改回10秒
driver.implicitly_wait(10)


time.sleep(10)
title=driver.find_elements_by_xpath('//*[@id="waterfall"]/div/div/div/div/a')
print(len(title))
for  i in title:
    print(i.text)

target = driver.find_elements_by_xpath('//*[@id="waterfall"]/div[5]/div[33]/div/div/a')
aa = driver.execute_script("arguments[0].scrollIntoView();", target) #拖动到可见的元素去
print(aa.text)
Python中,如果你想要获取通过JavaScript动态加载的HTML页面标题(`<title>`标签),你需要结合使用一些网络爬虫库,如`requests`库用于发送HTTP请求,以及`BeautifulSoup`库解析HTML内容。然而,由于JavaScript动态加载的内容是在客户端浏览器中生成的,Python直接请求可能会获取到静态HTML,看不到实时变化的内容。 如果你想抓取这样的动态内容,你可以选择以下方法: 1. **使用Selenium**:这是一个能够控制浏览器的库,可以模拟用户行为,打开页面并等待JavaScript渲染完成。然后,你可以使用Selenium的WebDriver API获取页面上的元素信息,包括动态加载的`<title>`标签。 ```python from selenium import webdriver url = 'http://example.com' # 替换为你需要的URL driver = webdriver.Firefox() # 或者其他浏览器驱动,如Chrome driver.get(url) title = driver.title print(f"Title: {title}") driver.quit() ``` 2. **使用Headless Chrome**:通过无头浏览器模式运行Chrome,可以获取完整的渲染后的HTML,然后使用BeautifulSoup处理。 ```python from bs4 import BeautifulSoup from selenium import webdriver import time options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--disable-gpu') driver = webdriver.Chrome(options=options) driver.get('http://example.com') time.sleep(3) # 等待一段时间让JavaScript完成加载 html = driver.page_source soup = BeautifulSoup(html, 'html.parser') title = soup.find('title').text print("Title:", title) driver.quit() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值