中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

橙子建站驗(yàn)證碼網(wǎng)絡(luò)營(yíng)銷(xiāo)的特點(diǎn)

橙子建站驗(yàn)證碼,網(wǎng)絡(luò)營(yíng)銷(xiāo)的特點(diǎn),WordPress仿百家號(hào)主題,濟(jì)南網(wǎng)站建設(shè)泉諾字體反爬案例分析與爬取實(shí)戰(zhàn) 文章目錄 字體反爬案例分析與爬取實(shí)戰(zhàn)1. 案例介紹2. 案例分析3. 爬取 本節(jié)來(lái)分析一個(gè)反爬案例,該案例將真實(shí)的數(shù)據(jù)隱藏到字體文件里,即使我們獲取了頁(yè)面源代碼,也無(wú)法直接提取數(shù)據(jù)的真實(shí)值。 1. 案例介紹 案例網(wǎng)…

字體反爬案例分析與爬取實(shí)戰(zhàn)

文章目錄

  • 字體反爬案例分析與爬取實(shí)戰(zhàn)
    • 1. 案例介紹
    • 2. 案例分析
    • 3. 爬取

本節(jié)來(lái)分析一個(gè)反爬案例,該案例將真實(shí)的數(shù)據(jù)隱藏到字體文件里,即使我們獲取了頁(yè)面源代碼,也無(wú)法直接提取數(shù)據(jù)的真實(shí)值。

1. 案例介紹

案例網(wǎng)站為https://antispider4.scrape.center/,第一眼看這個(gè)網(wǎng)站沒(méi)有啥特別的,那么我們先用selenium爬取一些信息,例如電影標(biāo)題、類(lèi)別、評(píng)分等,代碼實(shí)現(xiàn)如下:

from selenium import webdriver
from pyquery import PyQuery as pq
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWaitbrowser = webdriver.Chrome()
browser.get('https://antispider4.scrape.center/')
WebDriverWait(browser, 10) \.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.item')))
html = browser.page_source
doc = pq(html)
items = doc('.item')
for item in items.items():name = item('.name').text()categories = [o.text() for o in item('.categories button').items()]score = item('.score').text()print(f'name: {name} categories: {categories} score: {score}')
browser.close()
name: 霸王別姬 - Farewell My Concubine categories: ['劇情', '愛(ài)情'] score: 
name: 這個(gè)殺手不太冷 - Léon categories: ['劇情', '動(dòng)作', '犯罪'] score: 
name: 肖申克的救贖 - The Shawshank Redemption categories: ['劇情', '犯罪'] score: 
name: 泰坦尼克號(hào) - Titanic categories: ['劇情', '愛(ài)情', '災(zāi)難'] score: 
......

這里就出現(xiàn)問(wèn)題了,我們的score字段沒(méi)有任何信息,通過(guò)分析源代碼,發(fā)現(xiàn)評(píng)分對(duì)應(yīng)的節(jié)點(diǎn)內(nèi)并不包含任何的數(shù)字信息:

<p data-v-090744c8="" class="score m-t-md m-b-n-sm"><span data-v-090744c8=""><i data-v-090744c8="" class="icon icon-789"></i></span><span data-v-090744c8=""><i data-v-090744c8="" class="icon icon-981"></i></span><span data-v-090744c8=""><i data-v-090744c8="" class="icon icon-504"></i></span></p>

span節(jié)點(diǎn)里面什么信息都沒(méi)有,那頁(yè)面上的評(píng)分結(jié)果是怎么出來(lái)的?這其實(shí)是CSS的結(jié)果。

2. 案例分析

<i data-v-090744c8="" class="icon icon-789">::before
</i>
<i data-v-090744c8="" class="icon icon-981">::before
</i>

可以詳細(xì)觀(guān)察一下源代碼,各個(gè)span節(jié)點(diǎn)的不同之處在于內(nèi)部的i節(jié)點(diǎn)的class取值不太一樣,我們可以看到有3個(gè)span節(jié)點(diǎn),對(duì)應(yīng)的class取值分別是icon-789,icon-981,icon-504;接著我們觀(guān)察i節(jié)點(diǎn)的CSS樣式可以發(fā)現(xiàn)i節(jié)點(diǎn)內(nèi)部有一個(gè)::before字段,在CSS中,該字段用于創(chuàng)造一個(gè)偽節(jié)點(diǎn),及這個(gè)i節(jié)點(diǎn)或者span節(jié)點(diǎn)不一樣,::before可以往特定的節(jié)點(diǎn)中插入內(nèi)容,同時(shí)在CSS中使用content字段定義這一個(gè)內(nèi)容。我們可以在瀏覽器中追蹤C(jī)SS源代碼,代碼文件如下所示:

在這里插入圖片描述

點(diǎn)擊右邊的app.654ba59e.css:1,進(jìn)入文件之后可以看到整個(gè)CSS源代碼都在那里放著

在這里插入圖片描述

所以我們只需要讀取CSS文件并提取映射關(guān)系,這個(gè)CSS文件就是:https://antispider4.scrape.center/css/app.654ba59e.css,下面是部分截圖:

在這里插入圖片描述

3. 爬取

我們可以用requests庫(kù)讀取結(jié)果,并通過(guò)正則表達(dá)式將映射關(guān)系提取出來(lái),我們用findall方法對(duì)內(nèi)容進(jìn)行匹配,取出每一個(gè)關(guān)系賦值成字典即可,之后通過(guò)索引進(jìn)行訪(fǎng)問(wèn):

from selenium import webdriver
from pyquery import PyQuery as pq
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import re
import requests
url = 'https://antispider4.scrape.center/css/app.654ba59e.css'response = requests.get(url)
pattern = re.compile('.icon-(.*?):before\{content:"(.*?)"\}')
results = re.findall(pattern, response.text)
icon_map = {item[0]: item[1] for item in results}def parse_score(item):elements = item('.icon')icon_values = []for element in elements.items():class_name = (element.attr('class'))icon_key = re.search('icon-(\d+)', class_name).group(1)icon_value = icon_map.get(icon_key)icon_values.append(icon_value)return ''.join(icon_values)browser = webdriver.Chrome()
browser.get('https://antispider4.scrape.center/')
WebDriverWait(browser, 10) \.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.item')))
html = browser.page_source
doc = pq(html)
items = doc('.item')
for item in items.items():name = item('.name').text()categories = [o.text() for o in item('.categories button').items()]score = parse_score(item)print(f'name: {name} categories: {categories} score: {score}')
browser.close()
http://m.risenshineclean.com/news/61638.html

相關(guān)文章:

  • 安徽建設(shè)廳網(wǎng)站杭州關(guān)鍵詞優(yōu)化外包
  • 浙江網(wǎng)站建設(shè)網(wǎng)站優(yōu)化泉州seo外包
  • 怎么找回網(wǎng)站后臺(tái)密碼百度問(wèn)答優(yōu)化
  • 江西南昌網(wǎng)站建設(shè)服務(wù)文大俠seo博客
  • 網(wǎng)站 功能建設(shè)上 不足搜索引擎優(yōu)化的作用是什么
  • 寧波建設(shè)網(wǎng)站哪家好北京自動(dòng)網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣
  • 英國(guó)網(wǎng)站后綴百度刷搜索詞
  • 自己電腦做服務(wù)器搭建網(wǎng)站有域名百度小說(shuō)排行榜風(fēng)云榜單
  • 軟件技術(shù)的發(fā)展前景搜索引擎優(yōu)化是什么?
  • 1 建設(shè)網(wǎng)站目的是什么意思上海搜索排名優(yōu)化公司
  • 手機(jī)營(yíng)銷(xiāo)網(wǎng)站模板怎樣建立一個(gè)網(wǎng)絡(luò)銷(xiāo)售平臺(tái)
  • 網(wǎng)站上線(xiàn)步驟 icp備案寧波pc營(yíng)銷(xiāo)型網(wǎng)站制作
  • 木材加工公司網(wǎng)站建設(shè)廣告投放渠道
  • 高端網(wǎng)站建設(shè)公司哪家專(zhuān)業(yè)靠譜百度怎么打廣告
  • 做視頻網(wǎng)站空間要多大seo中國(guó)是什么
  • 怎么做娛樂(lè)網(wǎng)站保定百度首頁(yè)優(yōu)化
  • cloudflare wordpressseo網(wǎng)站免費(fèi)優(yōu)化軟件
  • wordpress網(wǎng)站關(guān)閉網(wǎng)上宣傳廣告怎么做
  • 極速在線(xiàn)網(wǎng)站百度口碑網(wǎng)
  • 彩票類(lèi)網(wǎng)站開(kāi)發(fā)谷歌海外推廣怎么做
  • 做網(wǎng)站西寧肇慶網(wǎng)站推廣排名
  • 做資源網(wǎng)站需要什么軟件網(wǎng)站排名顧問(wèn)
  • html5手機(jī)網(wǎng)站湖南長(zhǎng)沙關(guān)鍵詞推廣電話(huà)
  • 如何自制作網(wǎng)站做網(wǎng)絡(luò)優(yōu)化的公司排名
  • 磁力天堂torrentkitty太原seo關(guān)鍵詞排名優(yōu)化
  • 網(wǎng)站建設(shè)與維護(hù)王欣品牌廣告和效果廣告的區(qū)別
  • 電腦怎樣做病毒網(wǎng)站軟文怎么寫(xiě)吸引人
  • 深圳創(chuàng)建網(wǎng)站信息流優(yōu)化師是什么
  • 石家莊信息網(wǎng)官方網(wǎng)站免費(fèi)訪(fǎng)問(wèn)國(guó)外網(wǎng)站的app
  • 歐米茄女士手表網(wǎng)站國(guó)內(nèi)搜索引擎有哪些