大家好,我是皮皮。
一、前言
前幾天在Python鑽石交流群【海南菜同學】問了一個
Python
網絡爬蟲的選擇器提取問題,下圖是截圖:
代碼如下圖所示:
代碼初步看上去好像沒啥問題,但是結果就是不對。
from lxml import etree
import requests
url= "http://www.xiaohua.com/duanzi/"
resp = requests.get(url)
html = etree.HTML(resp.text)
print('*---*'*20)
result = html.xpath("/html/body/div[@class='main']/div[@class='content']/div[@class='grid clearfix']/div[@class='content-left']/div[@class='one-cont'][*]/p[@class='fonts']")
print(type(result))
print(result)
print('*-*'*20)
b = 0
for i in result:
b += 1
print(i,len(result))
print(b,etree.tostring(i).decode('utf-8'))
if b > 1:
break
初步判斷是
xpath
寫得有問題。
二、實作過程
這個問題,讨論的很激烈,具體細節讨論就不放出來了,這裡【薄荷味的魚】給了一個修改代碼,如下所示:
運作之後可以順利得到段子的文本:
運作之後,可以得到想要的結果:
後來粉絲就順利的解決了,如下圖所示:
這個粉絲後來還做了筆記,一起分享出來共同學習下: