'''
Created on 2017年4月5日 @author: Admin
''' import requests
from bs4 import BeautifulSoup as bsp # 网站链接
site = 'http://www.runoob.com'
lineNo = 1 class Movie: def __init__(self, name, url):
self.name = name
self.url = url def __str__(self):
return '%s,\t%s分,\t%s' % (self.name, self.url) __repr__ = __str__ def getSoup(url):
r = requests.get(url)
# r.encoding = 'gb18030'
return bsp(r.text, "html.parser") # 解析指定url,获取其中指定内容
def filterMovie(url):
resultList = []
   # url处理,注意页面的编码集
soup = getSoup(url)
# 查找所有target=_top的a标签
atags = soup.find_all('a', target='_top')
for atag in atags:
     # 取到指定a标签的title属性
titleA = atag['title']
if atag is not None:
try:
          # 根据取到的href属性,拼接上页面域名 获得完整的跳转url
url = site + atag['href']
print('url:', url)
print('title:', titleA)
          # 根据主方法里面 _init_ 中定义的内容,将获取到的字段进行组合,然后放到集合中
movie = Movie(titleA, url)
resultList.append(movie)
except:
print('error !!')
return resultList # 根据传入的结果结合 按照指定格式保存到 文本文件中
def saveInfo(atagList):
# 注意指定编码,否则输入到txt文件的时候会乱码
fileObj = open('vueJS.txt', 'a',encoding='utf8')
for atag in atagList:
atagName = str(atag.name)
print('url info:', atagName)
global lineNo
fileObj.write('(' + str(lineNo) + ') ' + atagName )
fileObj.write('\t')
fileObj.write(atag.url)
fileObj.write(
'————————————————————————————————————————————————————————————————————————————————————————————————')
fileObj.write('\n')
lineNo += 1
fileObj.close() # 获取到根据url整理出的一个结果集合,然后将结果集合保存的物理文件中
def getPageResource(url):
  
resultList = filterMovie(url)
if len(resultList) > 0:
saveInfo(resultList)

# 方法入口,定义一个页面url,然后去解析
if __name__ == '__main__':
url = 'http://www.runoob.com/vue2/vue-tutorial.html'
getPageResource(url)

python爬虫初级--获取指定页面上的菜单名称以及链接,然后导出的更多相关文章

  1. Java 爬虫(获取指定页面中所有的邮箱地址)

    import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.io.In ...

  2. objectARX 获取指定图层上所有实体ID

    2015-12-17 //获取指定图层上所有实体ID AcDbObjectIdArray GetAllEntityId(const TCHAR* layername) { AcDbObjectIdAr ...

  3. python模块之HTMLParser抓页面上的所有URL链接

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser抓页面上的所有URL链接 import urllib #MyParse ...

  4. php获取指定文件夹中文件名称

    /** * php获取指定文件夹中文件名称 * @author jackie <2018.10.10> */ public static function getFileName($fil ...

  5. [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒

    前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了Selenium+Phantomjs后,准备利用它们获取百度百科的旅游景点消息盒(I ...

  6. python爬虫3——获取审查元素(板野友美吧图片下载)

    测试环境:python2.7 + beautifulsoup4.4.1 + selenium2.48.0 测试网址:http://tieba.baidu.com/p/2827883128 目的是下载该 ...

  7. Python爬虫 爬取Web页面图片

    从网页页面上批量下载jpg格式图片,并按照数字递增命名保存到指定的文件夹 Web地址:http://news.weather.com.cn/2017/12/2812347.shtml 打开网页,点击F ...

  8. python 脚本(获取指定文件夹、指定文件格式、的代码行数、注释行数)

    1.代码的运行结果: 获取 指定文件夹下.指定文件格式 文件的: 总代码行数.总注释行数(需指定注释格式).总空行数: #coding: utf-8 import os, re # 代码所在目录 FI ...

  9. js禁用页面上右键菜单、选中和复制

    有时候我们不想页面上的内容被人复制走,那么就可以使用js对页面进行设置,禁止右键菜单.禁止选中.禁止复制等功能可以有效的达到这个效果,js代码如下所示: /** * 禁用右键菜单 */ documen ...

随机推荐

  1. python学习之读写csv文件(使用pandas)

    简介 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序 ...

  2. 使用vue时,报错“exports is not defined”

    在开发中引用插件时,报错“exports is not defined” 但在引用第三方组件的时候,在浏览器中报错“exports is not defined”.根据浏览器报错信息,查询到报错来源是 ...

  3. Vim 常用简单命令

    Vim中有三个模式,1.刚进入Vim画面的是命令模式,2. 在命令模式输入:进入末行模式, 3. 在命令模式输入 a或者i或者o进入编辑模式 在末行或者编辑模式中可以通过ESC回到命令模式 举例当前目 ...

  4. css给html添加效果

    <!doctype html> <html> <head> <title>EasyMall注册界面</title> <meta htt ...

  5. 转载:Keytool 工具介绍

    1.产生一个keystore: keytool -genkey -alias myssl -keyalg RSA -keystore myssl.jks 运行这个命令,系统提示: Enter keys ...

  6. Win10系列:C#应用控件进阶6

    路径 路径(Path)可以用来定义任意形状的曲线和几何图形,当然这种任意性也带来了复杂性.为了方便的绘制几何图形,微软在Visual Studio 2012安装包中为程序开发者提供了免费的Blend ...

  7. idea新建maven工程没有artifacts

    原理,是因为没把新创建好的maven项目给设置成一个可被tomcat部署的web项目 选择个项目路径 配置artifacts,引入到tomcat就可以

  8. 将MD5值压缩成8位32进制生成8位长度的唯一英文数字组合字符串

    function str16to32($a){ for($a = md5( $a, true ), $s = '0123456789ABCDEFGHIJKLMNOPQRSTUV', $d = '', ...

  9. 部署你的CRM程序

    教你发布CRM   发布CRM你将使用以下软件 nginx uWSGI CentOS7 CRM项目文件 virtualenv supervisor WSGI.uWSGI python web服务器开发 ...

  10. 查看python内部模块命令,内置函数,查看python已经安装的模块命令

    查看python内部模块命令,内置函数,查看python已经安装的模块命令 可以用dir(modules) 或者用 pip list或者用 help('modules') 或者用 python -m  ...