bs4確實沒這個好用,bs4的樹太複雜html
lxml很好python
定位很是好url
詳細解說在註釋裏面有了spa
1 #!/usr/bin/python3.4 2 # -*- coding: utf-8 -*- 3 4 from lxml import etree 5 import urllib.request 6 7 # 目標網址的html能夠看一下 8 url = "http://www.1kkk.com/manhua589/" 9 # 解析網址 10 data = urllib.request.urlopen(url).read() 11 # 解碼 12 html = data.decode('UTF-8','ignore') 13 14 page = etree.HTML(html.lower()) 15 16 # 查找的目標樣式以下 17 """ 18 ... 19 <ul class="sy_nr1 cplist_ullg"> 20 <li> 21 <a href="/vol1-6871/" class="tg">第1卷</a>(96頁)</li> 22 <li> 23 <a href="/vol2-6872/" class="tg">第2卷</a>(90頁)</li> 24 <li> 25 <a href="/vol3-6873/" class="tg">第3卷</a>(95頁)</li> 26 <li> 27 <a href="/vol4-6874/" class="tg">第4卷</a>(94頁)</li> 28 <li> 29 <a href="/vol5-6875/" class="tg">第5卷</a>(95頁)</li> 30 ... 31 """ 32 33 # 找到ul下li下的a中的href 34 hrefs = page.xpath('//ul[@class="sy_nr1 cplist_ullg"][2]/li/a/@href') 35 36 # 找到<a>...</a>之間的文字 37 hrefnames = page.xpath('//ul[@class="sy_nr1 cplist_ullg"][2]/li/a/text()') 38 39 # 找到頁數 40 hrefpages = page.xpath('//ul[@class="sy_nr1 cplist_ullg"][2]/li/text()') 41 42 for href in hrefs: 43 # 打印出來 44 print(href)
打印結果:code
1 /vol1-6871/ 2 /vol2-6872/ 3 /vol3-6873/ 4 /vol4-6874/ 5 /vol5-6875/ 6 /vol6-6876/ 7 /vol7-6877/ 8 /vol8-6878/ 9 /vol9-6879/ 10 /vol10-6880/ 11 /vol11-23456/ 12 /vol12-23457/ 13 /vol13-23695/ 14 /vol14-28326/ 15 /vol15-31740/ 16 /ch145-149-33558/ 17 /ch150-33559/ 18 /ch151-197255/ 19 /ch152-33560/ 20 /ch153-33561/ 21 /ch154-33562/ 22 /ch155-33563/ 23 /ch156-33564/ 24 /ch157-33565/ 25 ...