文档章节

python笔记之提取网页中的超链接

百里求一
 百里求一
发布于 2015/12/10 20:44
字数 257
阅读 399
收藏 0

python笔记之提取网页中的超链接

	对于提取网页中的超链接,先把网页内容读取出来,然后用beautifulsoup来解析是比较方便的。但是我发现一个问题,如果直接提取a标签的href,就会包含javascript:xxx和#xxx之类的,所以要对这些进行特殊处理。
#!/usr/bin/env python
#coding: utf-8
from bs4 import BeautifulSoup
import urllib
import urllib2
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

# 要分析的网页url
url = 'http://www.ruanyifeng.com/blog/2015/05/co.html'

def findAllLink(url):
    '''
    提取网页中的超链接
    '''
    # 获取协议,域名
    proto, rest = urllib.splittype(url)
    domain = urllib.splithost(rest)[0]
    
    # 读取网页内容
    html = urllib2.urlopen(url).read()
    
    # 提取超链接
    a = BeautifulSoup(html).findAll('a')
    
    # 过滤
    alist = [i.attrs['href'] for i in a if i.attrs['href'][0] != 'j']
    # 将形如#comment-text的锚点补全成http://www.ruanyifeng.com/blog/2015/05/co.html,将形如/feed.html补全为http://www.ruanyifeng.com/feed.html
    alist = map(lambda i: proto + '://' + domain + i if i[0] == '/' else url + i if i[0] == '#' else i, alist)
    return alist

if __name__ == '__main__':
    for i in findAllLink(url):
        print i

本文转载自:http://www.cnblogs.com/bergus/p/4811295.html

百里求一
粉丝 0
博文 29
码字总数 2218
作品 0
普陀
程序员
私信 提问
Python爬虫原理详解 简单易懂

什么是Python爬虫?Python爬虫原理是什么?Python爬虫代码是如何实现的?码笔记分享Python介绍及爬虫原理详解: 什么是Python爬虫? 我们可以把互联网看成是各种信息的站点及网络设备在一起组...

张扯淡
07/26
0
0
python 用beautiful soup解析网页后,如何循环打开爬取出来的网址链接?

用beautiful soup爬取特定网页后提取tag ‘a’,抓取里面的网址,打开特定的网址,循环特定次数,最后打印出想要的网址,如何操作? 详细的要求如下图: 我自己写的代码如下: 目前遇到的瓶颈...

nikitazhaohy
2016/08/21
4.7K
1
python 用bs4解析网页后,如何循环打开爬取出来的网址链接?

请问,用beautiful soup爬取特定网页后提取tag ‘a’,抓取里面的网址,打开特定的网址,循环特定次数,最后打印出想要的网址,如何操作? 详细的要求如下图: 我的代码如下: import urlli...

Kevin_Wong
03/25
169
0
利用python函数的输入、输出定义与时序图相结合,让生活更有趣

写在前面 1. 重点是思路交流,利用python函数的输入、输出定义与时序图相结合,让流程更加的简洁、清晰。该方法不局限于工作,同样适用于学习笔记、恋爱心得...等等只要存在个体交互的活动。...

python达人
2018/05/08
0
0
python 用bs4解析网页后,如何循环打开爬取出来的网址链接?

请问,用beautiful soup爬取特定网页后提取tag ‘a’,抓取里面的网址,打开特定的网址,循环特定次数,最后打印出想要的网址,如何操作? 详细的要求如下图: 我的代码如下: import urlli...

Kevin_Wong
03/25
354
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
12
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部