scrapy中css選擇器初識

2022-06-11 11:30:11 字數 3163 閱讀 8619

由於最近做爬取專案,涉及到網頁中資訊的選擇,所以邊做邊學了點皮毛,有自己的心得

hjsons =json.loads(response.body)

img_datas = hjsons['

data']

ifhjsons:

for data in

img_datas:

try:

item =bd_item()

#print(data['frompagetitleenc'])

#print(data['thumburl'])

item['

img_url

'] = data['

thumburl']

item[

'img_title

'] = data['

frompagetitleenc']

item[

'width

'] = data['

width']

item[

'height

'] = data['

height']

yield

item

except

:

pass

千圖網摳圖是分頁載入

qt_imgs = response.css('

.org-img-wrap .picture-list')

for qt_img in

qt_imgs:

try:

item =qt_item()

img_url = qt_img.css('

.img-show .lazy::attr(data-original)

').extract_first()

title = qt_img.css('

.img-show .lazy::attr(title)

').extract_first()

size = qt_img.css('

.hover-pic-detail .pic-info .info-title::text

').extract_first()

#width = re.findall(r'(.*?)\*',size).extract_first()

#height = re.findall(r'\*(.*?)', size).extract_first()

#print(width)

#print(height)

#time.sleep(10)

item['

qtimg_url

'] =img_url

item[

'qtimg_title

'] =title

item[

'size

'] =size

#item['width'] = width

#item['height'] = height

yield

item

except

:

pass

覓元素和千圖網差不多,但是選取鏈結有技巧,千圖網可以看到有兩個鏈結,其中data-original這個鏈結不同處理即可,但是如果選src會發現,選取出來的鏈結都是一樣的,而且當你開啟鏈結時發現黑色一片,我感覺這是種保護吧,但只有這一種鏈結該怎麼辦呢,於是我用正則去選擇,結果發現,抓取結果中有兩條鏈結,而第一條是無用的,第二條才是有用的,它的名字是data-src,這就好辦了,只需要把src改成data-src即可成功選取。

這東西有點意思,需要琢磨,以後用到再慢慢學吧

scrapy中的css選擇器

response.css a 返回的是selector物件,response.css a extract 返回的是a標籤物件 response.css a text extract first 返回的是第乙個a標籤中文字的值 response.css a attr href extract firs...

Scrapy之css選擇器

response.css 標籤名 標籤名的話可以是html標籤比如 title body div,也可以是你自定義的class標籤。例子 response.css title extract 對結果以列表的形式進行返回 extract first 對extract 返回的結果列表取第乙個元素。res...

初識css與css選擇器

初識css css的全稱為cascading style sheet 層疊樣式表,它的主要作用是為我們的html標籤新增各種各樣的樣式和修飾效果。這裡我總結的css屬於css2.0的知識點,css3.0的知識我打算在後面的文章裡面總結。其實html css部分的知識點總共站前端的知識總量的1 2 但...