python - 我写的Xpath 为什么爬取不到内容
阿神
阿神 2017-04-18 10:30:15
0
1
815

-- coding:utf-8 --

import lxml,requests,sys
from bs4 import BeautifulSoup
from lxml import etree

reload(sys)
sys.setdefaultencoding("utf-8")

def main():

url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E6%9A%B4%E8%B5%B0%E6%BC%AB%E7%94%BB&pn=0'

req = requests.get(url).content

# soup = BeautifulSoup(req.content,'lxml')
# imgs = soup.find_all('img')

content = etree.HTML(req)
paths = content.xpath('//*[@id="imgid"]/ul/li[1]/a/img/text()')
# for img in imgs:
#
#     print img

# for img in imgs :

print paths

main()

阿神
阿神

闭关修行中......

membalas semua(1)
Peter_Zhu

Apabila menulis perangkak, anda mesti menggunakan xpath untuk mengesahkan sama ada terdapat data dalam kod sumber halaman web Jika tidak, ini bermakna ia dimuatkan secara tidak segerak

1 Masukkan pautan ini dalam pelayar untuk melihat kod sumber, ctrl+f untuk mencari lokasi imgid

view-source:https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E6%9A%B4%E8%B5%B0%E6%BC%AB%E7%94%BB&pn=0

2. Temui

Senarai imej berikut tidak ditemui Kami boleh menentukan bahawa imej dimuatkan oleh js

3

F12 melihat rangkaian (segarkan semula untuk melihat), dan tidak menemui maklumat imej dimuatkan secara tidak segerak, jadi saya meneka bahawa data harus berada dalam html, tetapi ia diletakkan dalam js dan diproses semasa memuatkan imej

Cara yang sama untuk melihat kod sumber seperti di atas, cari parameter objURL dan cari url sebenar

//很多,集中在html下半部分
http://img3.duitang.com/uploads/item/201608/06/20160806110540_MAcru.jpeg
Penyelesaian

Selebihnya terpulang kepada anda~ Cari cara untuk menghuraikan url sebenar di bahagian berikut!

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan