python爬虫(2.获取网页外链与内链)
2016-12-29 16:17
1601 查看
from urllib.request import urlopen from urllib.parse import urlparse from bs4 import BeautifulSoup import re import datetime import random pages = set() random.seed(datetime.datetime.now()) #获取页面内链 def getInternalLinks(bsObj,includeUrl): includeUrl=urlparse(includeUrl).scheme+"://"+urlparse(includeUrl).netloc internalLinks=[] for link in bsObj.findAll("a",href=re.compile("^(/|.*"+includeUrl+")")): if link.attrs["href"] is not None: if link.attrs["href"] not in internalLinks: internalLinks.append(link.attrs['href']) return internalLinks #获取页面外链并且不包含当前url的链接 "^(http|www)((?!"+excludeUrl+").)*$" def getExternalUrl(bsObj,excludeUrl): externalUrl=[] for link in bsObj.findAll("a",re.compile("^(www|http)((?!"+excludeUrl+").)*$")): if link.attrs["href"] is not None: if link.attrs["href"] not in externalUrl: externalUrl.append(link.attrs['href']) return externalUrl #主页面的外链,若无就找主页面中内链随机一个,再在该内链中找外链 def getRandomExternalLink(startingPage): html=urlopen(startingPage) bsObj=BeautifulSoup(html) externalLinks=getExternalUrl(bsObj,startingPage) if len(externalLinks)==0: domain = urlparse(startingPage).scheme+"://"+urlparse(startingPage).netloc print("No external links, looking around the site for one") InternalLinks=getInternalLinks(bsObj,domain) page="http://"+InternalLinks[random.randint(0,len(InternalLinks)-1)] getRandomExternalLink(page) else: return externalLinks[random.randint(0, len(externalLinks)-1)] def followExternalOnly(startingSite): externalLinks=getRandomExternalLink(startingSite) print("tha random external page is:"+externalLinks) followExternalOnly(externalLinks)
相关文章推荐
- Python 网络爬虫 009 (编程) 通过正则表达式来获取一个网页中的所有的URL链接,并下载这些URL链接的源代码
- Python爬虫学习——获取网页
- Python 网络爬虫 009 (编程) 通过正则表达式来获取一个网页中的所有的URL链接,并下载这些URL链接的源代码
- python3爬虫1--简单网页源代码获取
- python爬虫获取网页内容
- Python 爬虫:获取网页图片
- Python爬虫项目,获取所有网站上的新闻,并保存到数据库中,解析html网页等(未完待续)
- 复杂的网页爬虫,python获取网页指的格式数据
- Python3——简单获取网页文字的爬虫
- python-获取提取网页url爬虫学习(1)
- 多线程获取豆瓣网页的网络爬虫(Python实现)
- python爬虫(1)_获取网页
- Python爬虫实战--(三)获取网页中的动态数据
- python-网络爬虫初学一:获取网页源码以及发送POST和GET请求
- python3的爬虫算法(1)--获取网页数据
- python 爬虫获取网页图片
- Python爬虫第一步之获取网页源代码
- python 爬虫 获取网页中的图片
- 简单爬虫python实现01——获取网页源码与存储
- Python天气预报采集器(网页爬虫)