python爬虫实训第二天

本文介绍了Python中用于HTTP请求的第三方库requests,以及正则表达式、BeautifulSoup和XPath解析HTML的方法。通过实例展示了如何使用这些工具进行网页数据抓取。同时,讲解了pip包管理工具的使用,包括安装、卸载和更换源,以解决下载速度问题。最后,探讨了正则表达式的匹配和XPath的选择器在解析HTML时的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础知识

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下载第三方库时报红字错误,需要换源,换源的各个步骤等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值