python让繁琐工作自动化 第12章 web页面抓取

1.requests  模块抓取页面

requests.get()  //下载一个网页

status_code  通过检查response对象的status_code属性,了解页面是否请求成功,若等于requests.code.ok,表明状态码为200,下载成功

若请求成功,页面将作为字符串,保存在response对象的text变量中

转码

2.检查页面错误:raise_for_status()

import requests
res=requests.get('https://www.cnblogs.com/nieliangcai/p/1.html')
try:
    res.raise_for_status()
except Exception as exc:
    print('there was a problem: %s .' % (exc))

 

 

3.将请求的页面内容保存到本地

必须用’wb’写二进制模式打开文件,即使页面是纯文本,也需要写入二进制数据,目的是为了保存该文本中的’unicode编码’

Iter_content() 方法在循环的每次迭代中,返回一段内容,每一段为bytes数据,需指定一段包含多少字节,通常是10万

 

4.html创建一个beautifulsoup对象

从本地向beautifulsoup传递一个file对象,加载本地的html文件

import bs4
example=open('example.html')
exampleSoup=bs4.BeautifulSoup(example)
print(type(exampleSoup))

 

4.用select元素寻找元素

 

import bs4
example=open('example.html')
exampleSoup=bs4.BeautifulSoup(example.read())
elems=exampleSoup.select('#author')   #返回一个列表
print(type(elems))                   
print(len(elems))                          #只有一个tag对象
print(type(elems[0]))             
print(elems[0].getText())             #getText 返回元素的文本 ,访问开始和结束之间标签的文本
print(str(elems[0]))                  #将元素传递给str() 返回一个字符串,包括开始和结束标签,以及该元素的文本
print(elems[0].attrs)                 #attrs返回字典,包括id属性,及id属性的值

 ------------------------------------------------------------

import bs4
example=open('example.html')
exampleSoup=bs4.BeautifulSoup(example)
pElems=exampleSoup.select('p')
print(len(pElems))
for i in range(len(pElems)):
    print(str(i)+' : '+str(pElems[i]))
    print('文本: '+pElems[i].getText())
    print()

 

 

转载于:https://www.cnblogs.com/like-cabbage/p/10642645.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值