Python简单爬虫第二蛋!

第二讲:几个爬取网页的实例

  本讲通过几个实例来讲述一下爬取网页的基本操作,同时也复习一下上节课的内容,相信还记得通用的代码框架吧,本讲还需要用到它,哈哈哈,是不能忘记滴。

  好了,开始!

  第一个实例:

 1 ‘‘‘小说爬取‘‘‘
 2
 3 import requests
 4
 5
 6
 7 def getHTML_Text(url):
 8
 9     try:
10
11         r = requests.get(url,timeout = 20)
12
13         r.raise_for_status() #如果状态不是200,则产生异常
14
15         r.encoding = r.apparent_encoding
16
17         return r.text
18
19     except:
20
21         return ‘产生异常‘
22
23
24
25 if __name__ == ‘__main__‘:
26
27 url = ‘http://wanmeishijiexiaoshuo.org/book/9.html‘
28
29 #上面是某小说网站的其中一章小说内容
30
31 print(getHTML_Text(url)[:5000])

  让我们来运行一下看看结果:

  看吧,都是小说的内容,爬下来了吧,懂了操作了吧,简单来说就是输入小说网站的url,然后爬取的框架就能自动爬取下来了。

  下面看第二个实例:

 1 ‘‘‘亚马逊商场爬取‘‘
 2
 3 import requests
 4
 5
 6
 7 def getHTML_Text(url):
 8
 9     try:
10
11         kv = {‘user-agent‘:‘Mozilla/5.0‘} #headers头信息
12
13         r = requests.get(url,timeout = 20,headers = kv)
14
15         r.raise_for_status() #如果状态不是200,则产生异常
16
17         r.encoding = r.apparent_encoding
18
19         return r.text
20
21     except:
22
23         return ‘产生异常‘
24
25
26
27 if __name__ == ‘__main__‘:
28
29     url = ‘https://www.amazon.cn/‘
30
31 print(getHTML_Text(url)[:5000])

  看看运行结果:

  挺乱七八糟的,但是这不是重点,重点是我们获取了全部response的信息,到后面我们会涉及到提取有用的信息,现在先不要着急哈,慢慢来,饭要一口一口吃。

  kv = {‘user-agent‘:‘Mozilla/5.0‘} #headers头信息

  r = requests.get(url,timeout = 20,headers = kv)

  还记得前面提到的get()方法里面的还有几个未提及的参数吗,这里的headers就是其中一个,添加了头信息之后,爬虫会伪装成Mozilla浏览器对目标url发送请求,如果对方服务器是能识别爬虫的,不伪装一下肯能分分钟被拒绝访问,这里我们添加了kv 字典作为头信息,在一定程度上提升了爬虫的能力,哈哈哈,下面看下一个例子。

  实例三:

 1 ‘‘‘百度搜索‘‘‘
 2
 3 import requests
 4
 5
 6
 7 def getHTML_Text(url):
 8
 9     try:
10
11         kv = {‘user-agent‘:‘Mozilla/5.0‘}
12
13         wd = {‘wd‘:‘北京天气‘}
14
15         r = requests.get(url,timeout = 20,params = wd ,headers = kv)
16
17         r.raise_for_status() #如果状态不是200,则产生异常
18
19         r.encoding = r.apparent_encoding
20
21         return r.text
22
23     except:
24
25         return ‘产生异常‘
26
27
28
29 if __name__ == ‘__main__‘:
30
31     url = "http://www.baidu.com/s?"
32
33     print(getHTML_Text(url)[:5000])

  看看运行结果:

  我#@¥!@%!@#

  冷静一下,再改改:

 1 ‘‘‘百度搜索‘‘‘
 2
 3 import requests
 4
 5
 6
 7 def getHTML_Text(url):
 8
 9     try:
10
11         wd = {‘wd‘:‘北京天气‘}
12
13         r = requests.get(url,timeout = 20,params = wd)
14
15         r.raise_for_status() #如果状态不是200,则产生异常
16
17         r.encoding = r.apparent_encoding
18
19         return r.text
20
21     except:
22
23         return ‘产生异常‘
24
25
26
27 if __name__ == ‘__main__‘:
28
29     url = "http://www.baidu.com/s?"
30
31     print(getHTML_Text(url)[:5000])

  运行结果:

  已经有结果了,原因是那个headers 的参数我们模拟的是Mozilla浏览器,百度的服务器直接拒绝访问了,没事,问题不大,我们注重的是过程,不用这些细节。

  好了,经过上面3个实例,相信对requests.get()方法的使用有更深的理解了吧,最后总结一下get()方法的参数。


参数名


说明


data


字典、字节序列或文件对象,作为Request的内容


json


JSON格式的数据,作为Request的内容


headers


字典,HTTP定制头


cookies


字典或CookieJar,Request中的cookie


auth


元组,支持HTTP认证功能


timeout


设定超时时间,秒为单位


files


字典类型,传输文件


proxies


字典类型,设定访问代理服务器,可以增加登陆认证


allow_redirects


True/False,默认位True,重定向开关


stream


True/False,默认位True,获取内容立即下载开关


verify


True/False,默认位True,认证SSL证书开关


cert


本地SSL证书路径

  这些参数会随着以后的学习逐步深入,本期到此结束。

原文地址:https://www.cnblogs.com/shuaiqi-XCJ/p/8981975.html

时间: 2024-08-29 07:58:56

Python简单爬虫第二蛋!的相关文章

Python简单爬虫第一蛋!

Python爬虫简单教程 一.准备工作: ①python 3.x 的环境 ②Windows 10 操作系统 ③能连接上互联网 二.注意事项: ①仅供参考学习,如有转载请注明出处! ②获取的数据不能用于商业应用,仅供学习. ③注意动手实践. 第一讲:第一个模块(requests)的使用教程 首先,需要安装一下requests 模块,这个在系统命令行(cmd)中用 pip install requests 命令完成.(这是很基本的操作,直接跳过哈) 然后打开我们的IDE(这里我用的是Spyder,也

Python简单爬虫第六蛋!(完结撒花)

第六讲: 今天我们来实战一个项目,我本人比较喜欢看小说,有一部小时叫<圣墟>不知道大家有没有听说过,个人觉得还是不错的,现在联网的时候,都可以随时随地用手机打开浏览器搜索查看,但是有时候也会遇到没有网络的情况,这个就很扎心了,有什么办法呢?所以这个项目基于这么一个现实背景来分析实现一下,把我们前几次讲到一些技术方法都运用一遍. (有人可能会说直接下载一个txt格式的小说文本文件不就好了,虽然是挺方便的,但是懒惰是不好的习惯,而且也没有运用到所学的知识,那么我们何必要学习呢?为什么要学,看完实例

Python 简单爬虫

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import os import time import webbrowser as web import random count = random.randint(20,40) j = 0 while j < count:     i = 0     while i <= 5:         web.open_new_tab('http://www.cnblogs.com/evilxr/p/37642

Python简单爬虫入门二

接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们BeautifulSoup的基本结构如下 #!/usr/bin/env python # -*-coding:utf-8 -*- from bs4 import BeautifulSoup import requests headers = { 'User-Agent':'Mozilla/5.0 (Win

Python 简单爬虫案例

Python 简单爬虫案例 import requests url = "https://www.sogou.com/web" # 封装参数 wd = input('enter a word') param = { 'query':wd } response = requests.get(url=url,params=param) page_text = response.content fileName = wd+'.html' with open(fileName,'wb') as

python简单爬虫

爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2.BeautifulSoup实现简单爬虫,scrapy也有实现过.最近想更好的学习爬虫,那么就尽可能的做记录吧.这篇博客就我今天的一个学习过程写写吧. 一  正则表达式 正则表达式是一个很强大的工具了,众多的语法规则,我在爬虫中常用的有: . 匹配任意字符(换行符除外) * 匹配前一个字符0或无限次 ? 匹配前一个字符0或1次 .* 贪心算法 .*? 非贪心算法 (.*?) 将匹配到的括号中的结果输出 \d 匹配数字 re.S 使得.

python 简单爬虫(beatifulsoup)

---恢复内容开始--- python爬虫学习从0开始 第一次学习了python语法,迫不及待的来开始python的项目.首先接触了爬虫,是一个简单爬虫.个人感觉python非常简洁,相比起java或其他面向对象的编程语言,动态语言不需要声明函数或变量类型.python有20年的发展历史,以简洁高效闻名,python最初只是一个马戏团的名字,它的哲学是'用一种方法完成一件事情'.我第一次使用python时就被它的简洁高效迷住了,相比起c++和java,他简直太棒了.而且现阶段的大数据和人工智能领

python 简单爬虫diy

简单爬虫直接diy, 复杂的用scrapy import urllib2 import re from bs4 import BeautifulSoap req = urllib2.Request(url, headers={'User-Agent' : "Magic Browser"}) webpage= urllib2.urlopen(req) soap = BeautifulSoap(webpage.read()) ...

python简单爬虫的实现

python强大之处在于各种功能完善的模块.合理的运用可以省略很多细节的纠缠,提高开发效率. 用python实现一个功能较为完整的爬虫,不过区区几十行代码,但想想如果用底层C实现该是何等的复杂,光一个网页数据的获得就需要字节用原始套接字构建数据包,然后解析数据包获得,关于网页数据的解析,更是得喝一壶. 下面具体分析分析用python如何构建一个爬虫. 0X01  简单的爬虫主要功能模块 URL管理器:管理待抓取URL集合和已抓取URL集合,防止重复抓取.防止循环抓取.主要需要实现:添加新URL到