Python爬虫基本框架

☞☞☞点击查看更多优秀Python博客☜☜☜

   Hello大家好,我是你们的朋友JamesBin这篇文章我们一起学习一下学习Python到爬虫的一个基本框架。

爬虫的基本思路:

在这里插入图片描述

#1、发起请求 使用http库向目标站点发起请求,即发送一个Request Request包含:请求头、请求体等

#2、获取响应内容 如果服务器能正常响应,则会得到一个Response Response包含:html,json,图片,视频等

#3、解析内容 解析html数据:正则表达式,第三方解析库如Beautifulsoup,pyquery等 解析json数据:json模块 解析二进制数据:以b的方式写入文件

#4、保存数据 数据库文

代码实现

# -*- coding: UTF-8 -*-
# -Author-= JamesBen
# Email: 1597757775@qq.com 

import  requests

def get_HTMLText(url):
    try :
        headers = \
            {
                'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
            }  # 此行代码骗过服务器我们是使用浏览器进行访问的,防止有些网站对我们进行拦截

        r = requests.get(url, timeout = 30,headers = headers)
        r.raise_for_status()      #如果状态不是200引发HTTPError异常
        r.encoding = r.apparent_encoding  #将文本的编辑方式传给头,防止造成编码错路出现乱码
        return r.text
    except :
        return "产生异常"
if __name__ == "__main__":
    url = "https://www.amazon.cn/"
    print(get_HTMLText(url))

代码分析

import requests导入requests库

def get_HTMLText(url):
    try :
        headers = \
            {
                'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
            }  # 此行代码骗过服务器我们是使用浏览器进行访问的,防止有些网站对我们进行拦截

        r = requests.get(url, timeout = 30,headers = headers)
        r.raise_for_status()      #如果状态不是200引发HTTPError异常
        r.encoding = r.apparent_encoding  #将文本的编辑方式传给头,防止造成编码错路出现乱码
        return r.text
    except :
        return "产生异常"

&emps;&emps;在这段代码中主要功能是得到网页源码,首先使用了try except进行异常捕获。在try部分首先加入个请求头headers用于骗过浏览器,其中使用requests里面的get函数得到网页源码,然后将源码用.text进行输出。
&emps;&emps;r.encoding = r.apparent_encoding #将文本的编辑方式传给头,防止造成编码错路出现乱码这行代码主要是防止编译出错。
&emps;&emps;这行代码的巧妙之处是首先模拟浏览器访问,然后加入了请求头,还进行了编码方式的改进。最重要的是进行了异常捕获。

以上就是主要的代码片段及分析,大家可以借鉴一下,如果感觉此文章对你有所帮助,请留下你一个宝贵的赞呗!在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值