python爬虫,使用pyppeteer异步,爬取,获得指定标签内容

获得指定

#pip install pyppeteer,使用 Pyppeteer(异步方案)
import asyncio
from pyppeteer import launch
async def main():
    browser = await launch()
    page = await browser.newPage()
    await page.goto('http://xxx/#/login')
    # 等待页面加载完成
    await page.waitForSelector('div[class="el-select"]')
    # 获取 div 内容
    div_content = await page.querySelectorEval('div[class="el-select"]', 'el => el.textContent')
    print(div_content)
    await browser.close()
asyncio.get_event_loop().run_until_complete(main())
#pip install pyppeteer,使用 Pyppeteer(异步方案)
import asyncio
from pyppeteer import launch
async def main():
    browser = await launch()
    page = await browser.newPage()
    await page.goto('https://www.bai.com/?tn=98010089_dg&ch=2')
    # 等待页面加载完成
    await page.waitForSelector('span[class="title-content-title"]')
    # 获取 div 内容
    div_content = await page.querySelectorEval('span[class="title-content-title"]', 'el => el.textContent')
    print(div_content)
    await browser.close()
asyncio.get_event_loop().run_until_complete(main())

在这里插入图片描述

获得全部

#pip install pyppeteer,使用 Pyppeteer(异步方案)
import asyncio
from pyppeteer import launch
async def main():
    browser = await launch()
    page = await browser.newPage()
    await page.goto('http://xxx/#/login')
    # 等待页面加载完成
    await page.waitForSelector("*")
    # 获取 div 内容
    div_content = await page.querySelectorEval('*', 'el => el.textContent')
    print(div_content)
    await browser.close()
asyncio.get_event_loop().run_until_complete(main())
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python爬虫抓取淘宝等动态加载内容的网站通常会涉及到JavaScript渲染的内容,这时简单地发送HTTP请求可能无法获取完整数据。为了处理这类情况,你需要使用一些支持浏览器自动化或者模拟用户交互的技术,如Selenium、Pyppeteer等库。 1. **Selenium**:这是一个流行的WebDriver工具,它允许通过真实的浏览器环境控制来动态加载页面并抓取数据。首先,需要安装selenium库,然后通过webdriver(如ChromeDriver)驱动浏览器访问网站。 ```python from selenium import webdriver # 创建一个新的Chrome浏览器实例 driver = webdriver.Chrome() driver.get('https://www.taobao.com') # 等待页面加载完成 driver.implicitly_wait(10) # 找到动态加载的部分并提取数据 data_elements = driver.find_elements_by_css_selector('.dynamic-data') # 需替换CSS选择器 data = [element.text for element in data_elements] # 关闭浏览器 driver.quit() # 数据处理 # ... ``` 2. **Scrapy-Splash**:Scrapy框架的一个中间件,Splash是一个轻量级的HTTP渲染服务,可以让你的爬虫像浏览器一样请求动态加载的资源。在Scrapy项目配置中启用Splash,并指定相应的URL。 3. **Pyppeteer**:另一个基于Node.js的库,提供了一个类似Chrome DevTools的API,适用于生成HTML渲染后的PDF、屏幕截图,以及爬取动态网页。它的使用方法也类似Selenium,先启动一个隔离的浏览器进程,然后控制这个进程进行操作。 记得遵守网站的Robots协议,尊重版权,并确保你的爬虫行为不会对服务器造成过大压力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大得369

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值