Python网络爬虫(第一天)

本文介绍如何使用Python的urllib和BeautifulSoup库抓取网页内容,并解析HTML文档。通过实例展示了如何安装并利用BeautifulSoup4处理HTML数据,包括获取特定标签、文本内容及属性等。同时介绍了Requests库的基本使用方法。

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

urllib :DOC 地址

Python 2 中 分为 urllib 和urllib2。
Python 3 中 为 urllib ,是python 中的标准库。

urllib库可以读取HTML文件、图像文件 或者其他任何文件流。

BeautifullSoup4

(也叫BS4)DOC 中文文档
1.他不是Python标准库,所以需要安装 。
2.window下安装方法: cmd命令行中 : pip install beautifulsoup4。
3.安装完成后导入一下看看是否报错,不报错就是安装成功了。

#导入
from bs4 import BeautifulSoup
import requests

#地址
url = '不写具体的地址了'

request = requests.get( url )

responseData = request.text

soup = BeautifulSoup(responseData,'html.parser')

print(soup.prettify())#标准缩进格式进行输出
print(soup.title)#<title>
print(soup.title.string)#标签里面的内容
print(soup.title.parent.name)#head
print(soup.p)#<p>标签只查找第一个吧
print(soup.h1)#<h1>标签 只查找第一个吧
print(soup.find_all('a'))#查找所有《a》标签的
print(soup.get_text())#获取所有文本内容

#Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,
# 所有对象可以归纳为4种: Tag , NavigableString , BeautifulSoup , Comment 
#Tag 标签 比如 <title>
#先有一个soup 然后的到一个tag  这里我要获得的是<a>标签
#tag_a = soup.a
print(tag_a)

#print(tag_a.name)#获取标签的名字,就是标签叫什么  这个就是  a
#获取标签的属性,这个返回的是所有的属性  是个字典 
#!!!!标签的属性的操作方法和字典一样  即可以通过 tag_a['href'] 的到 对应的值
print(tag_a.attrs)
print(tag_a['title'])#
#NavigableString  标签中的字符串
print(tag_a.string)
# BeautifulSoup 对象表示的是一个文档的全部内容
# Comment 注释
print(tag_a.contents)#标签中的内容 ,返回列表

subclass = '#J_list > ul > li > div.detail > h2 > a'
subclasses = soup.select(subclass)
print(subclasses)
for subcls in subclasses:
    dict = {
       'subclass':subcls.string,
       'href':subcls['href']
       }
    print(dict)

Requests

安装: pip install requests
中文文档:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html


import requests

urlStr = 'url地址'
#常用的两种方式 get post 其他的查手册
#get方法  可以传param也可以不传    param:以一个字符串字典来提供这些参数

r = requests.get(urlStr,{"processid":"35"})
r = requests.get(urlStr,{"processid":"35"},headers = {'user-agent':'my-app/0.0.1'})#定制请求头  hearders 查手册
r = requests.get('')

r = requests.post(urlStr, data = {"processid":"35"})

r.encoding='ISO-8859-1'# 设置编码格式
print(r.url)#当时post提交时 url中是看不到data数据的
print(r.text)#这个url的内容
print(r.encoding)# 编码格式
print(r.headers)#头部信息
#print(r.content)#这个会把url中所有的内容都打出来,text 不会   比如  \r \n  二进制相应内容  以字节的方式访问请求响应体,比如图片文件等
#print(r.json())#如果接口返回的是个json字符串,直接用这个就可以啦 ,如果不是json还用这个的话,会抛出一个异常
print(r.raise_for_status())# 检查请求是否成功 不知道怎么用,下面的好使 用它来抛异常
print(r.status_code)# 检查请求是否成功  失败了也抛出异常 是一个返回码  200 404 503
#print(r.raw)#原始相应内容 查手册
#post传文件  查手册
#请求头 cookie
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

英杰丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值