基础知识
pip包管理工具
内置库
包/库:别人写好的代码,直接引用,加快开发效率。
内置包:python解释器内置常用功能库。
解释器安装目录/Lib文件夹下, os time urllib等
文件夹里有__init__.py 就成了一个包。
…
import urllib
from urllib import request
response = request.urlopen(‘http://baidu.com’)
…
关于HTTP模拟和HTML源代码解析
python时代 urllib urllib2
由第三方程序员做了一个新http请求库,比官方更方便,urllib3
又有一个程序员,在urllib3基础上进一步封装和优化,requests
python3时代 内置库统一为urllib
结论:建议直接使用requests
三方库
pypi.org 上丰富的各种功能的库
pip包管理工具
在服务器上没有图形界面的浏览器.开发语言第三方库往往用命令行包管理工具
解释器/script/pip.exe
…
pip -V # 看Pip版本
pip search requests #搜索包信息
pip install requests #安装第三方库
pip uninstall requests #卸载
pip list #展示所有已经安装过的库
pip freeze > requirements.txt #把项目用到的库信息导出到一个文件中
…
第三方库安装的 解释器目录\lib\site-packages\
换源 参考换源网页
软件源source:清单里维护了上万的 某某软件-> 某某url下载 库下载地址关系
但官方pypi.org下载速度慢
国内一些大学、大公司同步镜像
方法一:临时换源
‘pip install requests -i http://simply.aliyun.com/simply/’
方法二:永久换
系统用户文件夹下新建.pip文件夹和pip.conf文件,写入配置
方式三(推荐):pycharm设置里面配 settings/interpreter/+号/manage repositories/+号 复制源(推荐阿里云)
参考[pip换源](https://www.cnblogs.com/believepd/p/10499844.html)
豆瓣 https://pypi.doubanio.com/simple/
阿里云 https://mirrors.aliyun.com/pypi/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
(1)使用正则表达式解析html
text6="""aaahelloaabb
bb
world
aaa</html>"""
pattern10 =re.compile(r'hello(.*?)world',re.S)
print(pattern10.findall(text6))
(2)使用bs库解析html
from bs4 import BeautifulSoup
html="""
<html>
<body>
<a id="bbb" href="https://www.baidu.com">百度一下</a>
<a></a>
<body>
</html>
"""
bs = BeautifulSoup(html,'html.parser')
print(bs.a)
print(bs.find_all('a'))
print(bs.a['href'])
dom = etree.HTML(html)
print(dom)
(3)使用xpath解析html
from lxml import etree
html = """省略html代码"""
#xpath表达式
#全文匹配,匹配不到返回[] ,匹配到发[element,element]
#//自动获取,表示忽略前面任意层父级目录,进行查找,单/表示准确的层级
print(dom.xpath('//a'))
#/@取属性
print(dom.xpath('//a/@href'))#/取内容
print(dom.xpath('//a/text()'))
print(dom.xpath('//a[@id="second_a"]/text()')[0])#和/@效果一样
主要困难及问题:
今天主要学习了如何使用正则表达式、bs、xpath爬取html,了解了pip包的,第三方库requests等的一些基本知识,正则表达式偏难,对爬虫有了更深入的初次理解,需要一层一层剥取,主要还是偏重理论问题。Python下载第三方库时报红字错误,需要换源,换源的各个步骤等等