由於最近做爬取專案,涉及到網頁中資訊的選擇,所以邊做邊學了點皮毛,有自己的心得
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('覓元素和千圖網差不多,但是選取鏈結有技巧,千圖網可以看到有兩個鏈結,其中data-original這個鏈結不同處理即可,但是如果選src會發現,選取出來的鏈結都是一樣的,而且當你開啟鏈結時發現黑色一片,我感覺這是種保護吧,但只有這一種鏈結該怎麼辦呢,於是我用正則去選擇,結果發現,抓取結果中有兩條鏈結,而第一條是無用的,第二條才是有用的,它的名字是data-src,這就好辦了,只需要把src改成data-src即可成功選取。.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
這東西有點意思,需要琢磨,以後用到再慢慢學吧
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 但...