说明:以下内容学习自:http://www.imooc.com/
1、首先这个教程使用了V3的python,作者也讲到了一些功能函数,在V2不支持,经过测试,比如,urllib在V2就没有.request方法,实际上,网上反馈已经把urllib2合并到urllib中了。考虑到以后v3总会代替掉v2, 咱也升级算了。 顺便把win7也换成了win10, 貌似开机速度比win7还快。
2、直接上代码吧,加了中文注释,和视频教程大同小异的:之前的代码都是在sublime或者cmder里面操作,可发现换到V3以后,一个print在sublime中断报错提示,可完全一样的代码我用ipython又可以运行,好诧异。
所以,最后我干脆跑到pycharm去调试的。
__author__ = 'Administrator'
# coding:utf-8
import re
from urllib.request import urlopen
from bs4 import BeautifulSoup as bs
# 使用urllib的urlopen方法,去打开维基百科的首页,读取,并用utf-8解码
resp = urlopen('https://en.wikipedia.org/wiki/Main_Page').read().decode('utf-8')
# 使用BeautifulSoup去解析,其中html.parser是默认的解析器
soup = bs(resp, 'html.parser')
# 获取所有的/wiki/开头的a标签的href属性。
listUrls = soup.find_all('a', href=re.compile(r'^/wiki/'))
print(listUrls)
# 输出所有的词条对应的名称和URL
for url in listUrls:
# 排除.jpg JPG结尾的
if not re.search('\.(jpg|JPG)$', url['href']):
# 显示名称和网址的格式
# string只能显示一个,而get_text()可显示标签下所有的文字。
print(url.get_text(), '<---->', 'https://en.wikipedia.org'+url['href'])
3、win10遇到的问题:
MP出错,提示awesomium_v1.6.5异常,好在MP能提示到官网提供awesomium_v1.6.6_sdk_win.exe的下载,第一次安装失败,卡机,后重启Win10修复。
4、方法总结:
- urllib相关函数得到网址和解码;
- bs4进行解析,可使用默认的解析器或者lxml等解析器;
- 根据要求和RE规则,找到所有的地址列表
- for循环后加工
5、结果展示:网址直接可打开对应的wiki信息哦。
6、PS:作者提到的chrome插件postman通过翻墙下了最新版,看下载量和5星评级应该不错,不过暂时我还没体验到他的威力,以后有感悟的话,再更新。