文档章节

爬虫下载文章 BeautifulSoup

 阿豪boy
发布于 2017/08/25 23:40
字数 397
阅读 18
收藏 0
# 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')

 

© 著作权归作者所有

共有 人打赏支持
粉丝 23
博文 1094
码字总数 737991
作品 0
西安
(转)Python中第三方模块的使用心得

前面已经说了,其实学习Python的过程,很多时候就是在学习如何使用第三方模块,完成自己需要的功能。 关于Python的第三方库类库,其实网上很多很多相关资料。 其中,官网的Python库:Python ...

Dyllian
2013/05/22
0
0
Python开发简单爬虫--学习笔记

一、概述 目标 掌握开发轻量级爬虫 内容 爬虫简介 简单爬虫架构 URL管理器 网页下载器(urllib2) 网页解析器(BeautifulSoup) 完整实例:爬取百度百科雷军词条相关的1000个页面数据 tips: 轻量...

老男孩coder
06/17
0
0
Python爬虫小实践:寻找失踪人口,爬取失踪儿童信息并写成csv文件,方便存入数据库

前两天有人私信我,让我爬这个网站,http://bbs.baobeihuijia.com/forum-191-1.html上的失踪儿童信息,准备根据失踪儿童的失踪时的地理位置来更好的寻找失踪儿童,这种事情本就应该义不容辞,...

天才小熊猫QAQ
2017/10/24
0
0
BeautifulSoup安装及其应用

BeautifulSoup 安装及其使用 BeautifulSoup 是个好东东。 官网见这里: http://www.crummy.com/software/BeautifulSoup/ 下载地址见这里:http://www.crummy.com/software/BeautifulSoup/bs......

Prefecter
2014/01/02
0
0
python爬去妹子网整个图片资源教程(最详细版)

爬取妹子网的低级教程连接如下:爬妹子网 ps:只支持单个套图下载,不支持整体下载 在说说我的这个爬虫代码的设计思路: ①当我们浏览这个网站时,会发现,每一个页面的URL都是以网站的域名+...

双歧杆菌
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

(一)软件测试专题——之Linux常用命令篇01

本文永久更新地址:https://my.oschina.net/bysu/blog/1931063 【若要到岸,请摇船:开源中国 不最醉不龟归】 Linux的历史之类的很多书籍都习惯把它的今生来世,祖宗十八代都扒出来,美其名曰...

不最醉不龟归
22分钟前
6
0
蚂蚁金服Java开发三面

8月20号晚上8点进行了蚂蚁金服Java开发岗的第三面,下面开始: 自我介绍(要求从实践过程以及技术背景角度着重介绍) 实习经历,说说你在公司实习所做的事情,学到了什么 关于你们的交易平台...

edwardGe
29分钟前
7
0
TypeScript基础入门 - 函数 - this(三)

转载 TypeScript基础入门 - 函数 - this(三) 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.4 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
38分钟前
0
0
Spark core基础

Spark RDD的五大特性 RDD是由一系列的Partition组成的,如果Spark计算的数据是在HDFS上那么partition个数是与block数一致(大多数情况) RDD是有一系列的依赖关系,有利于Spark计算的容错 RDD中每...

张泽立
46分钟前
0
0
如何搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已...

Java大蜗牛
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部