爬取简书漫画专栏网页的文章图片、文章作者、文章创建的时间、文章的内容
代码:(Python 3)
如果是Python 3
就不要使用
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
改为
import importlib
importlib.reload(sys)
#!/bin/python
# coding: utf-8
import importlib
importlib.reload(sys)
from bs4 import BeautifulSoup
import requests
html_doc = """
<div>
<a class="blue-link" target="_blank" href="/u/d36ea793dd5e">庚桑</a>
<span class="time" data-shared-at="2017-08-27T16:48:36+08:00"></span>
</div>
</div>
<a class="title" target="_blank" href="/p/afab067940e1">你听。</a>
<p class="abstract">
生活需要多一点点小温馨的慰籍。 忆似故人曲 如果说已经不知道要怎么用谈话来表达自己,那麽一头栽进画画中就可以让我畅所欲言 。 构思一个形象,配上一段文字,她就成了它们。而它...
</p>
<div class="meta">
<a target="_blank" href="/p/afab067940e1">
<i class="iconfont ic-list-read"></i> 4
</a> <a target="_blank" href="/p/afab067940e1#comments">
<i class="iconfont ic-list-comments"></i> 0
</a> <span><i class="iconfont ic-list-like"></i> 1</span>
</div>
</div>
</li>
<li id="note-16330011" data-note-id="16330011" class="have-img">
<a class="wrap-img" href="/p/6b7eaab896c5" target="_blank">
![](//upload-images.jianshu.io/upload_images/6276133-f7e3df55576ccb5a.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/150/h/120)
</a>
<div class="content">
<div class="author">
<a class="avatar" target="_blank" href="/u/e48ead073ebb">
![](//upload.jianshu.io/users/upload_avatars/6276133/00ade28c-da5a-4282-8bef-082b21c07bb5.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/96/h/96)
</a> <div class="name">
<a class="blue-link" target="_blank" href="/u/e48ead073ebb">若水国画</a>
<span class="time" data-shared-at="2017-08-27T17:16:45+08:00"></span>
</div>
</div>
<a class="title" target="_blank" href="/p/6b7eaab896c5">学国画手记:第55篇《疏枝唤雨》</a>
<p class="abstract">
临摹宋徽宗《写生珍禽图》之《疏枝唤雨》珠颈斑鸠。 斑鸠寓意长长久久。明天是农历的七月初七,也是我们中国的传统节日七夕节。提前祝天下有情人七夕情人节快乐!愿所有的爱情都能像阳光...
</p>
<div class="meta">
<a target="_blank" href="/p/6b7eaab896c5">
<i class="iconfont ic-list-read"></i> 7
</a> <a target="_blank" href="/p/6b7eaab896c5#comments">
<i class="iconfont ic-list-comments"></i> 0
</a> <span><i class="iconfont ic-list-like"></i> 3</span>
</div>
</div>
</li>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
# 如果没有上面那句,就会提示soup未定义
#soup = soup.find_all('a',class_="blue-link")
# 查找所有有关的节点
tags = soup.find_all('div', class_="content")
# r同样,如果没有上面那句,就会提示tags未定义
for tag in tags:
image = tag.img['src']#获取图片
article_user = tag.div.a['href']#获取作者
created_time = tag.div.span['data-shared-at']#获取时间
article_url = tag.p.get_text()
tag_span = tag.div.div.find_all('span')
likes = tag_span[0].get_text(strip=True) #此处不明白
# 可以在查找的 tag 下继续使用 find_all()
print (tag)
print (article_url)
print (created_time)
print (image)
【注意:
created_time = tag.div.span['data-shared-at']中的[]的内容是标签的属性,不是标签属性的内容,也不是class或id设置的名字
】
运行效果:
1、
2、
3、
4、在浏览器中输入上图中获取的图片的url
可以看到