☀️SVG對映反爬示例練習⚡直接提取SVG文字圖片的文字⚡
import re
from requests_html import HTMLSession
from selenium import webdriver
from bisect import bisect
def parseAndReplaceSvgNode(d_tags):
for d_tag in d_tags:
position = d_tag.value_of_css_property("background-position")
x, y = map(int, re.findall("\d+", position))
num = data[bisect(ys, y)][bisect(xs, x)]
# 替換節點為普通文字
browser.execute_script(f"""
var element = arguments[0];
element.parentNode.replaceChild(document.createTextNode("{num}"), element);
""", d_tag)
browser = webdriver.Chrome()
url = '
browser.get(url)
d_tag = browser.find_element_by_css_selector('d[class^="vhk"]')
background_image_url =外匯跟單gendan5.com d_tag.value_of_css_property("background-image")
svg_url = background_image_url[5:-2]
session = HTMLSession()
html_session = session.get(svg_url)
xs = []
ys = []
data = []
for text_tag in html_session.html.xpath(r"//text"):
if not xs:
xs.extend(map(int, text_tag.xpath(".//@x")[0].split()))
ys.append(int(text_tag.xpath(".//@y")[0]))
data.append(list(text_tag.xpath(".//text()")[0]))
# 一次性替換掉整個 DOM 中所有的 svg 節點為對應的文字
parseAndReplaceSvgNode(
browser.find_elements_by_css_selector('d[class^="vhk"]'))
# 刪除 a 標籤
element = browser.find_element_by_css_selector('.title a')
browser.execute_script("""
var element = arguments[0];
element.parentNode.removeChild(element);
""", element)
# 獲取標題
title = browser.find_element_by_class_name("title").text
# 獲取評論
comment = browser.find_element_by_class_name("comments").text
# 人均
avgPrice = browser.find_element_by_class_name('avgPriceTitle').text
# 口味、環境、服務
comment_score_tags = browser.find_elements_by_css_selector(
".comment_score .item")
taste = comment_score_tags[0].text
environment = comment_score_tags[1].text
service = comment_score_tags[2].text
# 地址
address = browser.find_element_by_css_selector('.address .address_detail').text
# 特色
characteristic = browser.find_element_by_css_selector(
'.characteristic .info-name').text
# 電話
phone = browser.find_element_by_class_name("more").text
print(title, comment, avgPrice, taste, environment,
service, address, characteristic, phone)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2791096/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SVG 文字排版SVG
- SVG 文字路徑動畫SVG動畫
- SVG <textPath>文字路徑SVG
- SVG <text>繪製文字SVG
- 記一次svg反爬學習SVG
- SVG 文字填充和描邊SVG
- SVG 旋轉文字字元SVG字元
- 如何在 CSS 背景圖片中對 SVG 圖片進行著色 ,修改svg圖片顏色CSSSVG
- SVG格式圖片的放大SVG
- Python 提取PDF文字和圖片Python
- svg圖片 填充顏色SVG
- 設定svg圖片大小SVG
- Android圖片之svgAndroidSVG
- js 如何提取富文字里的圖片路徑JS
- 從圖片提取文字的終極解決方法 ——【通用文字識別 API】API
- 動態更改svg圖片的顏色SVG
- 修改SVG圖片的大小和顏色SVG
- OCR圖片文字提取工具:Initiater for Mac中文版Mac
- 線上SVG轉換,支援SVG to PNG、SVG to JPEG、SVG to WEBP 圖片轉換操作-toolfk程式設計師線上工具網SVGWeb程式設計師
- 教你用微信小程式快速提取圖片上的文字微信小程式
- 請問下有人 搞過 提取圖片裡的文字嗎?
- CSS和SVG實現文字漸變、描邊、投影CSSSVG
- HTML中嵌入SVG圖片的N種方式HTMLSVG
- 表格轉文字如何實現-表格文字識別介面整合示例-快速提取表格中的文字
- 用SVG的圖片格式如何劃入更改圖片的顏色?SVG
- 提取圖片中文字的教程
- 圖片裁剪-文字識別-文字新增
- HTML5 SVG 特效示例HTMLSVG特效
- JavaScript練習題目(2)文字域內的字串反轉JavaScript字串
- mac上如何提取圖片上的文字?幾款不錯的OCR文字識別工具推薦Mac
- CSS & SVG foreignObject 實現文字鏤空波浪動畫CSSSVGObject動畫
- 使用icomoon把svg圖片生成字型圖示SVG
- SVG動畫應用-酷炫的圖片展示效果SVG動畫
- 手機如何提取圖片中的文字、拍照識別文字的操作
- 向量圖SVG的使用SVG
- UIButton圖片文字控制元件位置自定義(圖片居右文字居左、圖片居中文字居中、圖片居左文字消失等)UI控制元件
- Android Studio 3.0 svg圖片問題AndroidSVG
- 畫影圖形: SVG & Canvas 圖形對比SVGCanvas