解析器
- re(比较复杂, 反正我倒现在还是一知半解,劝退新手最好的东西)
- lxml(xpath,容易理解之后bs4完全上手)
- bs4(听说很简单)
那我就迎难而上吧 = =(想劝退我不可能的)
re 正则表达解析
首先我拿了一段糗事百科的html来练练手 = =
import re
demo = """<div class="thumb">
<a href="/article/120424672" target="_blank">
<img src="//pic.qiushibaike.com/system/pictures/12042/120424672/medium/app120424672.jpeg" alt="糗事#120424672" class="illustration" width="100%" height="auto">
</a>
</div>
<div class="thumb">
<a href="/article/118808016" target="_blank">
<img src="//pic.qiushibaike.com/system/pictures/11880/118808016/medium/app118808016.jpg" alt="糗事#118808016" class="illustration" width="100%" height="auto">
</a>
</div>
<div class="thumb">
<a href="/article/120423267" target="_blank">
<img src="//pic.qiushibaike.com/system/pictures/12042/120423267/medium/app120423267.jpeg" alt="糗事#120423267" class="illustration" width="100%" height="auto">
</a>
</div>
"""
# 非贪婪匹配(.*?) 匹配符合条件的值不越界 把你要的值用()起来就行 简单吧
# re.S 单行模式
pat = re.compile(r'<div class="thumb">.*?<img src="(.*?)" alt=.*?</div>', re.S)
# 查找demo里的所有内容
demo_src = pat.findall