python小实例一:简单爬虫
本文所谓的爬虫就是通过本地远程访问url,然后将url的读成源代码形式,然后对源代码进行解析,获取自己需要的数据,相当于简单数据挖掘。本文实现的是将一个网页的图片爬出保存到本地的过程,例子很简单,用的是python 3.5.2版本,以前的版本可能导入的包的名字不一样,调用的库函数方式有些差别。代码如下:
#coding =utf-8
import urllib.request
import re def getHtml(url):
page = urllib.request.urlopen(url) ##打开页面
html = page.read() ##获取目标页面的源码
return html def getImg(html):
reg = 'src="(.+?\.png)"' ##正则表达式筛选目标图片格式,有些是'data-original="(.+?\.jpg)"'
img = re.compile(reg)
html = html.decode('utf-8') ##编码方式为utf-8
imglist = re.findall(img, html) ##解析页面源码获取图片列表
#print(imglist)
x = 0
#length = len(imglist)
for i in range(6): ##取前6张图片保存
imgurl = imglist[i]
#imgurl = re.sub('"(.*?)"',r'\1',imgurl) #取单引号里的双引号内容
#print(imgurl)
urllib.request.urlretrieve(imgurl,'%s.jpg' % x) ##将图片从远程下载到本地并保存
x += 1 global Max_Num
Max_Num = 1
##有时候无法打开目标网页,需要尝试多次,这里设置为1次
for i in range(Max_Num):
try:
html = getHtml("view-source:http://www.shangxueba.com/jingyan/2438398.html")
getImg(html)
break
except:
if i < Max_Num - 1:
continue
else:
print ('URLError: <urlopen error timed out> All times is failed ')
python小实例一:简单爬虫的更多相关文章
- python Cmd实例之网络爬虫应用
python Cmd实例之网络爬虫应用 标签(空格分隔): python Cmd 爬虫 废话少说,直接上代码 # encoding=utf-8 import os import multiproces ...
- [Python]小百合十大爬虫
国庆几天在家看了几篇关于使用Python来编写网络爬虫的博客,想来自己断断续续学习Python也有几个月了,但一个像样的程序都没有写过,编程能力并没有得到提高,愧对自己花费的时间.很多时候虽然知道什么 ...
- python根据正则表达式的简单爬虫
今天根据正则表达式简单的爬了一下大众点评,把北京的美食爬了爬,(店铺名,人均消费,地址) import re import urllib.request from urllib.request imp ...
- 【python小练习】简单的猜数字游戏
简单的猜数字游戏 前两天在论坛回答问题时候,看到一个猜数字的游戏,就在原来的基础上改了一下,玩一玩. 此程序,数字范围和尝试次数是事先设定好的,当然可以通过代码修改.经过测试,由于难度过大,我在其中加 ...
- python练习1(简单爬虫)
做一个简单的练习 目标:爬取中文小说 目标网站:http://www.biqule.com/book_58/26986.html 只爬取正文部分. 使用requests库来获取网页信息,使用re库正则 ...
- 【python小练】图片爬虫之BeautifulSoup4
Python3用不了Scrapy! Python3用不了Scrapy! Python3用不了Scrapy! [重要的事情说三遍,据说大神们还在尝试把scrapy移植到python3,特么浪费我半个小时 ...
- python+senium+chrome的简单爬虫脚本
简述: 开始接触python写web自动化的脚本主要源于在公司订阅会议室,主要是使用python+selenium+chromedriver驱动chrome浏览器来完成的,其中部分python代码可以 ...
- python小实例——tkinter实战(计算器)
一.完美计算器实验一 import tkinter import math import tkinter.messagebox class calculator: #界面布局方法 def __init ...
- python小实例
一.跳动的心 love = '\n'.join([''.join([('love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0 ...
随机推荐
- Mybatis 系列7-结合源码解析核心CRUD 配置及用法
[Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...
- CVE-2017-12615漏洞利用
Tomcat任意文件上传漏洞CVE-2017-12615复现 今天在群里听到有人讲这个CVE-2017-12615漏洞,想起自己的虚机ubuntu里面曾经装过tomcat,午休时间来瞅瞅. 漏洞利用条 ...
- UE4中多种颜色轮廓线的后期处理
转自:http://blog.csdn.net/pizi0475/article/details/50396277 随着近来虚幻引擎4的一些变化,渲染多种颜色的轮廓线已经可以实现了!通过自定义模板,类 ...
- CRM 2016 请求"System.Security.Permissions.FilelOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"类型的权限已失败.
CRM 请求"System.Security.Permissions.FilelOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,Pu ...
- iOS @property语句
@property声明的形式是: @property ( attributes ) type name; type和name的含义一目了然,attributes描述了如何编写访问器. 一.assign ...
- MybatisUtil的使用,便于产生SqlSession
简化代码,实现一个静态的工具类来实现获取SqlSession 主要有getSqlSessionFactory()和getSqlSession() public class MybatisUtil { ...
- 关于HSTS
HSTS(HTTP Strict Transport Security) 当用户在浏览器中输入一个域名,如果没有注明前缀(也就是没输入"http"的时候)的时候,浏览器会默认按照h ...
- (转)C#操作Word文档
原文1地址:http://www.cnblogs.com/lantionzy/archive/2009/10/23/1588511.html 原文2地址: http://www.cnblogs.com ...
- python-day02-购物车
购物车 需求: 1.启动程序后,让用户输入工资,然后打印商品列表: 2.容许用户根据商品编号购买商品: 3.用户选择商品后,检测余额是否足够,够了就直接扣款,不够就提醒客户: 4.随时可以退出,退出时 ...
- Hive数据据类型 DDL DML
Hive的基本数据类型 DDL DML: 基本数据类型 对于Hive而言String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以 ...