内容简介:爬虫下载文章 BeautifulSoup
# coding=utf-8
from bs4 import BeautifulSoup
import urllib
import urllib2
import sys
reload(sys)
sys.setdefaultencoding('utf8')
url = 'http://www.pythontab.com/html/pythonhexinbiancheng/index.html'
request = urllib2.urlopen(url)
html = request.read()
# print html
# 解析方式
soup = BeautifulSoup(html, 'html.parser')
'''
<ul class="list lh24 f14" id="catlist">
<li>
<h3>Python高级教程</h3>
<a href="http://www.pythontab.com/html/2017/pythonhexinbiancheng_0821/1166.html" target="_blank" >
<h2>一名数据挖掘工程师给新人整理的入门资料</h2> </a>
<p>四年前我一次听说数据挖掘这个词,三年前我学习了数据挖掘理论知识,两年前我做了几个与数据挖掘有关的项目,一年前我成为一名数据挖掘工程 <a href="http://www.pythontab.com/html/2017/pythonhexinbiancheng_0821/1166.html" class="content_detail" target="_blank">[详细]</a></p>
</li>
'''
# 先通过id 找 再通过标签找,注意空格必须有
# 找到链接和标题
items = soup.select('#catlist > li > a')
# 只找到标题
titles = soup.select('#catlist > li > a > h2')
# 找超链接和标题,方便后续分割
links = soup.select('#catlist > li > a')
for i in items:
print i.get_text()
# zip函数,titles和links是列表通过zip将两个列表下标对应的两个作为字典
'''
l1 = [1,2,3]
l2 = {'a','b','c'}
d = zip(l1,l2)
[(1, 'a'), (2, 'c'), (3, 'b')]
'''
items = []
for title, link in zip(titles, links):
data = {
'title': title.get_text(), # 获取标签的文本
'link': link.get('href') # 获取标签的属性
}
items.append(data)
# 输出标题和链接
for i in items:
print i['title'], i['link']
'''
<div class="content">
'''
# 获取超链接内容
for i in items:
request = urllib2.urlopen(i['link'])
html = request.read().encode('utf-8')
soup = BeautifulSoup(html, 'html.parser')
title = i['title']
texts = soup.select('div.content > p')
content = []
for t in texts:
content.append(t.get_text().encode('utf-8'))
with open('file/%s.html' % title, 'wb') as f:
f.write(i['title']+'\n'+html)
# for cont in content:
# f.write(cont+'\n')
以上所述就是小编给大家介绍的《爬虫下载文章 BeautifulSoup》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- python爬虫-- 抓取网页、图片、文章
- 一篇文章教会你理解和定义Scrapy爬虫框架中items.py文件
- 一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程
- 教大家使用Nodejs+Mysql+React写一个掘金和csdn优质文章的爬虫网站
- 《文章推荐系统》系列之构建离线文章画像
- 《文章推荐系统》系列之构建离线用户和文章特征
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
单元测试之道Java版
David Thomas、Andrew Hunt / 陈伟柱、陶文 / 电子工业 / 2005-1 / 25.00元
程序员修炼三部曲丛书包含了四本书,介绍了每个注重实效的程序员和成功团队所必备的一些工具。 注重实效的程序员都会利用反馈来指导开发,并驱动个人的开发流程。编码的时候,最有用的反馈来自于“单元测试”。 为了测试一座桥梁,不会只在晴朗的天气,开一辆汽车从桥中间穿过,就认为已经完成了对桥梁的测试。然而许多程序员却正在使用这种测试方法——把这种一次顺利通过称为“测试”。事实上,注重实效的程序员应......一起来看看 《单元测试之道Java版》 这本书的介绍吧!