网络爬虫入门:你的第一个爬虫项目(requests库)

0.采用requests库

虽然urllib库应用也很广泛,而且作为Python自带的库无需安装,但是大部分的现在python爬虫都应用requests库来处理复杂的http请求。requests库语法上简洁明了,使用上简单易懂,而且正逐步成为大多数网络爬取的标准。

1. requests库的安装
采用pip安装方式,在cmd界面输入:

pip install requests

小编推荐一个学python的学习qun 491308659 验证码:南烛
无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享

2. 示例代码
我们将处理http请求的头部处理来简单进行反反爬虫处理,以及代理的参数设置,异常处理等。

import requests

def download(url, num_retries=2, user_agent=‘wswp‘, proxies=None):
    ‘‘‘下载一个指定的URL并返回网页内容
        参数:
            url(str): URL
        关键字参数:
            user_agent(str):用户代理(默认值:wswp)
            proxies(dict): 代理(字典): 键:‘http’‘https‘
            值:字符串(‘http(s)://IP’)
            num_retries(int):如果有5xx错误就重试(默认:2)
            #5xx服务器错误,表示服务器无法完成明显有效的请求。
            #https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81
    ‘‘‘
    print(‘==========================================‘)
    print(‘Downloading:‘, url)
    headers = {‘User-Agent‘: user_agent} #头部设置,默认头部有时候会被网页反扒而出错
    try:
        resp = requests.get(url, headers=headers, proxies=proxies) #简单粗暴,.get(url)
        html = resp.text #获取网页内容,字符串形式
        if resp.status_code >= 400: #异常处理,4xx客户端错误 返回None
            print(‘Download error:‘, resp.text)
            html = None
            if num_retries and 500 <= resp.status_code < 600:
                # 5类错误
                return download(url, num_retries - 1)#如果有服务器错误就重试两次

    except requests.exceptions.RequestException as e: #其他错误,正常报错
        print(‘Download error:‘, e)
        html = None
    return html #返回html

print(download(‘http://www.baidu.com‘))

结果:

Downloading: http://www.baidu.com
<!DOCTYPE html>
<!--STATUS OK-->

</script>

<script>
if(navigator.cookieEnabled){
    document.cookie="NOJS=;expires=Sat, 01 Jan 2000 00:00:00 GMT";
}
</script>

</body>
</html>

原文地址:https://www.cnblogs.com/pypypy/p/12003942.html

时间: 2024-10-05 06:44:35

网络爬虫入门:你的第一个爬虫项目(requests库)的相关文章

爬虫入门系列(三):用 requests 构建知乎 API

爬虫入门系列目录: 爬虫入门系列(一):快速理解HTTP协议 爬虫入门系列(二):优雅的HTTP库requests 爬虫入门系列(三):用 requests 构建知乎 API 在爬虫系列文章 优雅的HTTP库requests 中介绍了 requests 的使用方式,这一次我们用 requests 构建一个知乎 API,功能包括:私信发送.文章点赞.用户关注等,因为任何涉及用户操作的功能都需要登录后才操作,所以在阅读这篇文章前建议先了解Python模拟知乎登录.现在假设你已经知道如何用 reque

[转载]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程

我们使用dmoz.org这个网站来作为小抓抓一展身手的对象. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Items):明确你想要抓取的目标 制作爬虫(Spider):制作爬虫开始爬取网页 存储内容(Pipeline):设计管道存储爬取内容 好的,基本流程既然确定了,那接下来就一步一步的完成就可以了. 1.新建项目(Project) 在空目录下按住Shift键右击,选择“在此处打开命令窗口”,输入一

python爬虫从入门到放弃(四)之 Requests库的基本使用

什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库如果你看过上篇文章关于urllib库的使用,你会发现,其实urllib还是非常不方便的,而Requests它会比urllib更加方便,可以节约我们大量的工作.(用了requests之后,你基本都不愿意用urllib了)一句话,requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库. 默认安装好python之后,是没有安

爬虫入门 手写一个Java爬虫

本文内容 涞源于  罗刚 老师的 书籍 << 自己动手写网络爬虫一书 >> ; 本文将介绍 1: 网络爬虫的是做什么的?  2: 手动写一个简单的网络爬虫; 1: 网络爬虫是做什么的?  他的主要工作就是 跟据指定的url地址 去发送请求,获得响应, 然后解析响应 , 一方面从响应中查找出想要查找的数据,另一方面从响应中解析出新的URL路径, 然后继续访问,继续解析;继续查找需要的数据和继续解析出新的URL路径  . 这就是网络爬虫主要干的工作.  下面是流程图: 通过上面的流程图

python网络爬虫入门(一)——简单的博客爬虫

最近,为了微信公众号的图文,上网疯狂的收集和看了一些有深度的新闻和有趣的引人深思的文字评论,并选择了几篇极品发布出去.但感觉一篇一篇的看实在是麻烦死了.想找一个简单的解决办法,看能不能自动把网上的资料收集起来,然后自己用统一筛选.不巧,最近准备学习下网络爬虫相关知识,于是按照网上的教程自己学着试写了一个小小的爬虫,嘻嘻,是用来爬韩寒博客的. 先把完整的代码贴上来,如果朋友们需要试验下,请先安装python相关环境,然后在复制粘贴保存,再按F5运行. #导入urllib库,python访问网页必须

Python网络爬虫入门,带你领略Python爬虫的乐趣!

前段时间小编写了一篇有关于Python入门的文章,我觉得写的还是不够好,所以我特地补上一篇Python爬虫的入门的,本文特别适合Python小白,刚学习爬虫不久.接下来就让我们一起来写第一个例子吧! 一.我们的目标 1.作为第一个例子,我就以抓取糗事百科热门贴为例吧 2.糗事百科热门帖,获取其发布者.评论.点赞数.评论等信息 3.将信息清洗并打印,循环输出 4.设计程序,使可以选择抓取的页面范围 5.将每一页的信息保存到文本 二.开发环境介绍 phthon 2.7.13 IDE:PyCharm

Python网络爬虫入门篇

1.  预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. 2. Python爬虫基本流程 a. 发送请求 使用http库向目标站点发起请求,即发送一个Request,Request包含:请求头.请求体等. Request模块缺陷:不能执行JS 和CSS 代码. b. 获取响应内容 如果requests的内容存在于目标服务器上,那么服务器会返回请求内容. Response包含:html.Json字符串.图片,

python网络爬虫入门

python网络爬虫入门(一) 网络爬虫的定义 1.网络蜘蛛.网络机器人,抓取网络数据的程序. 2.其实就是用Python(其他语言也可以这里介绍python)程序模仿人点击浏览器并访问网站,而且模仿的越逼真越好. 对比几种语言 1.Python :请求模块.解析模块丰富成熟,强大的Scrapy网络爬虫框架 2.PHP :对多线程.异步支持不太好 3.JAVA:代码笨重,代码量大 4.C/C++:虽然效率高,但是代码成型慢 爬取数据的一般步骤 1.确定需要爬取的URL地址 2.由请求模块向URL

python网络爬虫入门(二)——用python简单实现调用谷歌翻译

最近在看国外的文档,有些生词不认识.就用谷歌翻译来理解,用着用着闲来无事就按F12查看了下页面的源代码.发现可以用python简单的实现下谷歌翻译的页面功能.于是先上网搜下有没有类似的文章博客,发现几篇不错的,于是参考其他代码与自己的思路,简单的实现了下翻译的功能,代码如下: import re import urllib,urllib2 #----------模拟浏览器的行为,向谷歌翻译发送数据,然后抓取翻译结果,这就是大概的思路------- def Gtranslate(text): #t