Python3.5 爬虫之由浅入深(二、get多个网页)
2018-03-13 08:54
549 查看
Python3.5 爬虫之由浅入深(二、get多个网页)
望共同进步转载请注明地址:http://blog.csdn.net/weixin_39701039/article/details/79535578首先的安装requests模块,这里安装和前面讲到的安装xlrd模块类似,详见http://blog.csdn.net/weixin_39701039/article/details/79492672安装好requests模块之后,就可以开始导入import requests 来开始些代码了前面也已经写了如何抓取单个网页(详见http://mp.blog.csdn.net/postedit/79527224),这里是关于多个网页的抓取,还是把网页的抓取思路在写一遍:我们爬取网页的过程大致分四步:第一步:获取需要爬取的url(多个网页的爬取主要在于这一步); 1.访问原网址,get网页内容,
2.利用标签(BeautifulSoup等),正则(re)等方法获取网页中的链接网址,然后经过处理得到我们要爬取得url列表 ps:(BeautifulSoup模块是在bs4里,所以要pip install bs4 或则手动下载安装包解压,详见http://mp.blog.csdn.net/postedit/79492672,re模块安装同理)第二步:将url发送请求到服务器(requests.get(url,...);因为多个,所以这里可用for循环);第三步:服务器将内容发送到客户端(也就是我们的电脑上response = requests.get());第四步:保存内容到对应的文件位置(with....到结束部分)。为了方便理解,可以看下http协议部分,这里我没有做总结,以后有机会再做
代码如下:
图1:
图2:
图3:
图4:
单个网页的抓取请转 http://blog.csdn.net/weixin_39701039/article/details/79527224
望有所帮助,望采纳!!
望共同进步转载请注明地址:http://blog.csdn.net/weixin_39701039/article/details/79535578首先的安装requests模块,这里安装和前面讲到的安装xlrd模块类似,详见http://blog.csdn.net/weixin_39701039/article/details/79492672安装好requests模块之后,就可以开始导入import requests 来开始些代码了前面也已经写了如何抓取单个网页(详见http://mp.blog.csdn.net/postedit/79527224),这里是关于多个网页的抓取,还是把网页的抓取思路在写一遍:我们爬取网页的过程大致分四步:第一步:获取需要爬取的url(多个网页的爬取主要在于这一步); 1.访问原网址,get网页内容,
2.利用标签(BeautifulSoup等),正则(re)等方法获取网页中的链接网址,然后经过处理得到我们要爬取得url列表 ps:(BeautifulSoup模块是在bs4里,所以要pip install bs4 或则手动下载安装包解压,详见http://mp.blog.csdn.net/postedit/79492672,re模块安装同理)第二步:将url发送请求到服务器(requests.get(url,...);因为多个,所以这里可用for循环);第三步:服务器将内容发送到客户端(也就是我们的电脑上response = requests.get());第四步:保存内容到对应的文件位置(with....到结束部分)。为了方便理解,可以看下http协议部分,这里我没有做总结,以后有机会再做
代码如下:
#coding:utf-8 #python3.5.1 import requests import time from bs4 import BeautifulSoup #这里以我的微博网址为例 url = 'http://blog.csdn.net/weixin_39701039' #定义请求头部 headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36' } #'User-Agent'为代理,方便爬虫 response = requests.get(url,headers = headers,timeout = 60) #url为传入网址参数;headers为请求头部;timeout为设置反应延迟时间,这里意味着延迟超过60s则放弃 response.encoding = 'utf-8' #编码 #获取文本text res= response.text #BeautifulSoup处理 soup = BeautifulSoup(res,'html.parser') #print(soup) #两种方法观察怎样获取链接 #一.观察打印出的soup,发现所需要的链接href在<li class="blog-unit">下的a标签里 #二.用开发者工具(这里我用google示例):1.鼠标停在网页上,邮件选择开发者工具,或则按F12(键盘顶行);2,点击开发者工具顶行菜单Element,选择箭头,然后把鼠标移到网页上,开始查找(见图1,图2). lis = soup('li',class_="blog-unit") #已经获取所有需要的<li>标签,这里lis类型为列表(list) #循环列表 a = 0 for li in lis: #使得每次循环a值不一样 a = a + 1 #获取a标签 a_get = li('a',target="_blank")[0] #获取链接href href = a_get['href'] print(href) #这里href即为完整的url response1 = requests.get(href, headers=headers, timeout=60) # url为传入网址参数;headers为请求头部;timeout为设置反应延迟时间,这里意味着延迟超过60s则放弃 response1.encoding = 'utf-8' # 编码 #这里就先不讲title的获取,可以用str(数字)代替,保证每次循环的名称不一样就行 title = str(a) with open(r'G:\任务20180312/url_several' + '/' + title +'.html','wb') as f: #wb: w表示写入,b表示二进制, wb表示以二进制文件写入 #response.content 为 4000 获取的二进制文件 f.write(response1.content) #如图3,图4
图1:
图2:
图3:
图4:
单个网页的抓取请转 http://blog.csdn.net/weixin_39701039/article/details/79527224
望有所帮助,望采纳!!
相关文章推荐
- Python3.5 爬虫之由浅入深(一、get单一网页)
- python爬虫由浅入深1-从网页中爬取文件并保存至本地
- Python3.5 爬虫之由浅入深(三、html转excel)
- Python3 爬虫--网页get和post
- Python爬虫入门之get网页信息并作为文本输出
- python 用爬虫写网页测试
- Python爬虫学习——获取网页
- Python3.4网页爬虫,提取图片
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- WSWP(用 python写爬虫) 笔记三:为爬虫添加缓存网页内容功能
- python爬虫(爬取豆瓣电影)_动态网页,json解释,中文编码
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- Python的网页爬虫&文本处理&科学计&机器学习&数据挖掘工具集
- Python爬虫爬取网页图片
- 第一个网页爬虫(python3版本)
- python写的爬虫抓取到的网页是乱码解决
- Python3爬虫之三网页解析【爬取豆瓣Top电影】
- python3使用requests模块的get方法做爬虫(伪装浏览器)
- python爬虫 -- 截图网页中的图片(先Mark下,待改善)
- 基python实现多线程网页爬虫