requests - helloworld

抓取静态界面

import requests

headers={
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"
}

url = "http://localhost:63343/using_ol/simple/绘圆.html?_ijt=2dqdng2d3ph5j8f3duqpg48oni"

response = requests.get(url, headers= headers)

print(response.text)

抓取动态界面

以 vue 工程为例,使用 requests 抓取,只能获取到 index.html 的内容,无法获取到 vue 组件的内容。

简单说,就是抓取到的代码,body 部分是空的,html 基本没啥内容。

这是因为 vue 项目,界面是动态渲染的,本身就不包含 html 页面。

可以使用如下方法:

  1. 使用工具模拟客户端行为,如 Puppeteer(通过Headless Chrome)或 Selenium。这些工具可以启动浏览器,加载 vue 应用程序,并与之交互以获取动态内容。
  2. 直接分析 javascript 代码以找出内容来源(看懂代码推导可能的界面效果,难度极高)。

下面展示 selenium 的基本用法

from selenium import webdriver


url = "http://localhost:7082/#/gis/4490"

driver = webdriver.Chrome()

driver.get(url)

content = driver.page_source

print(content)


driver.quit()

学习计划

基于这些需求,我们可以定个学习计划:

  1. 解析静态界面:数据抓取:requests、BeautifulSoup;
  2. 解析动态界面:数据交互,模拟登录、点击等操作:Selenium、Puppeteer;
  3. 抓取到的数据:需要保存到数据库;
  4. 发布服务(web):将代码封装成服务,供其他系统调用;

posted on 2024-12-06 09:27  疯狂的妞妞  阅读(16)  评论(0)    收藏  举报

导航