爬虫

1、requests 库:

requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,默认安装好python之后,是没有安装requests模块的,需要单独通过pip安装。

2、requests 库的一些基本函数:

requests 库的网页请求函数
函数说明
get(url [, timeout=n])对应HTTP的GET方式,设定请求超时时间为n秒
post(url, data={'key':'value'})对应HTTP的POST方式,字典用于传输客户数据
delete(url)对应HTTP的DELETE方式
head(url)对应HTTP的HEAD方式
options(url)对应HTTP的OPTIONS方式
put(url, data={'key':'value'})对应HTTP的PUT方式,字典用于传输客户数据

get方法,它能够获得url的请求,并返回一个response对象作为响应。

response对象的属性
属性说明
status_codeHTTP请求的返回状态
encodingHTTP响应内容的编码方式
textHTTP响应内容的字符串形式
contentHTTP响应内容的二进制形式
response对象的方法
方法说明
json()若http响应内容中包含json格式数据, 则解析json数据
raise_for_status()若http返回的状态码不是200, 则产生异常

(常见的HTTP状态码:200 - 请求成功,301 - 资源(网页等)被永久转移到其它URL,404 - 请求的资源(网页等)不存在,500 - 内部服务器错误)

3、BeautifulSoup 库:

Beautiful Soup是python的一个HTML或XML的解析库,我们可以用它来方便的从网页中提取数据,它拥有强大的API和多样的解析方式。

二、我的第一个Python爬虫

1、运用 requests 库的 get() 函数访问 360搜索主页并打印相应的属性:

复制代码
import requests
for i in range(20):
    r=requests.get("https://hao.360.com/")
    r.encoding='utf-8'
    print("第{}次爬取".format(i+1))
    print("返回状态:{}".format(r.status_code))
    print("网页内容的长度:{}".format(len(r.text))) print("text 的内容:{}".format(r.text)) print("content 属性所返回的网页长度:{}".format(len(r.content)))
复制代码

运行结果如下图:

 

 2、利用 BeautifulSoup 对一个简单的 HTML 页面保存为字符串进行操作:

html 文本为:

复制代码
html='''<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
    <h1>我得第一个标题</h1>
    <p  id="first">我得第一个段落。</p>
<body>
        <table border="1">
    <tr>
        <td>row 1, cell 1</td>
        <td>row 1, cell 2</td>
    </tr>
    <tr>
        <td>row 2, cell 1</td>
        <td>row 2, cell 2</td>
    </tr>
</table>
</html>'''
复制代码

从html文本中获取soup:

from bs4 import BeautifulSoup
# 这里指定解析器为html.parser(python默认的解析器)
soup = BeautifulSoup(html,'html.parser')
printf(type(soup))
# 输出:<class 'bs4.BeautifulSoup'>

获取 head 内容:

print("head 标签内容和学号 后两位:",html.head,'学号后两位 18 ')

输出为:

获取 body 标签内容:

print("body 标签的内容:",soup.body)

输出为:

获取 id 为 frist 的标签对象:

first=soup.select('#first')
print("first 标签的内容:{}".format(first))
print(type(first))

输出为:

获取 html 页面的中文字符(采用正则表达式):

import re
pat=re.compile(r'[\u4e00-\u9fa5]+')
result=pat.findall(html)

输出为:

 

 

以上就是我的第一个python爬虫程序。

转载于:https://www.cnblogs.com/Lorrege/p/10929730.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值