glidedsky爬蟲之css反爬蟲

2021-10-09 10:53:05 字數 2560 閱讀 9132

"""

@author: cjp

@file: cssfan.py

@time: 2020/9/11 16:37

"""import re

from operator import itemgetter

import requests

from lxml import etree

defgao

(url)

: items =

headers =

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

# print(response.content.decode())

html = etree.html(response.content.decode())

divs = html.xpath(

'//div[@class="row"]/div[@class="col-md-1"]'

) result =

0# print(len(divs))

for div in divs:

clas = div.xpath(

'./div'

) a_items =

# 獲取每個數字所在位置

left =

1# 數字第幾位

for cla in clas:

class_name = cla.xpath(

'./@class'

) res = class_name[0]

+'.*'

div_num = cla.xpath(

'./text()'

)# 獲取每乙個的值

class_value = re.findall(res, response.content.decode())

item =

for value in class_value:

vals = value.split(

':')

item[vals[0]

.strip()]

= vals[1]

.strip(

).strip(

'em'

) valu =

false

if'opacity'

in item:

if item[

'opacity']==

0:# 隱藏元素

pass

elif

'content'

in item:

# 該位置顯示的最後

result = item[

'content'

]# print(type(result), int(result.strip('"')))

int(result.strip(

'"')))

elif

'left'

in item:

valu = left +

int(item[

'left'])

# 元素移動之後所在位置

else

: valu = left # 元素保持原來的位置

if valu:

left +=

1 item_num =

item_num[

'num']=

''.join(div_num)

item_num[

'valu'

]= valu

if a_items:

a_items.sort(key=itemgetter(

'valu'

), reverse=

false

) nums =

''for item in a_items:

num = item[

'num'

] nums += num

int(nums)

)# 這一頁所有的資料列表

print

(items)

return items

defmain()

:list=[

] total =

0for i in

range(1

,1001):

url =

''.format

(i)for i in gao(url)

:list

print

(list

)for ele in

range(0

,len

(list))

: total = total +

list

[ele]

print

('合為:'

,total)

if __name__ ==

'__main__'

: main(

)

GlidedSKY挑戰之五 CSS反爬

雖然幾個挑戰沒寫完,簡單的看了一下,爬蟲工作過程中一些問題在這裡都有展示,是乙個可以檢驗爬蟲工作者的能力的 跟玄幻 中挑戰塔一樣。說一下,第5個挑戰 css反爬 通過css修改了樣式,在頁面上看到的數字展示跟原始碼中的展示不一樣 直接上 了。import re from operator impor...

glidedsky挑戰 CSS反爬

相應頁面 分析這個頁面的特點 頁面顯示出來的資料不同 頁面中部分顯示的資料可能在標籤中不顯示 頁面 現數字順序是亂的,不好組合拼接,如第3個字元 346對應634 頁面中,有些字元還出現其它的數字來擾亂數字。是不是這些資料似曾相識,沒錯了,這些css 就是頁面數字顯示出來的規則。沒辦法了,那就分析 ...

glidedsky爬蟲闖關 第一關

今天無意中發現了乙個練習爬蟲的 做的挺不錯的 強烈推薦 第一關是將網頁中所有的數字相加,因為格式十分整齊,可以用多種方法來實現,一併記錄在這裡了,注意在get的時候要加上在cookie import requests from bs4 import beautifulsoup import refr...