python爬虫小实例
- 1、python爬取贴吧壁纸
- 1.1、获取整个页面数据
- #coding=utf-8
- import urllib
- def getHtml(url):
- page = urllib.urlopen(url)
- html = page.read()
- return html
- html = getHtml("http://tieba.baidu.com/p/2738151262")
- print html
- 复制代码
- 1.2、筛选页面中想要的数据
- import re
- import urllib
- def getHtml(url):
- page = urllib.urlopen(url)
- html = page.read()
- return html
- def getImg(html):
- reg = r'src="(.+?\.jpg)" '
- imgre = re.compile(reg)
- imglist = re.findall(imgre,html)
- return imglist
- html = getHtml("http://tieba.baidu.com/p/2460150866")
- print getImg(html)
- 1.3、将页面筛选的数据保存到本地
- #coding=utf-8
- import urllib
- import re
- def getHtml(url):
- page = urllib.urlopen(url)
- html = page.read()
- return html
- def getImg(html):
- reg = r'src="(.+?\.jpg)" '
- imgre = re.compile(reg)
- imglist = re.findall(imgre,html)
- x = 0
- for imgurl in imglist:
- urllib.urlretrieve(imgurl,'%s.jpg' % x)
- x+=1
- html = getHtml("http://tieba.baidu.com/p/2460150866")
- print getImg(html)
- 抓取昵图网图片 --修改版
- #coding=utf-8
- import urllib
- import re
- def getHtml(url):
- page = urllib.urlopen(url)
- html = page.read()
- return html
- def getImg(html):
- reg = r'src="(.*?)" '
- imgre = re.compile(reg)
- imglist = re.findall(imgre,html)
- x = 0
- for imgurl in imglist:
- urllib.urlretrieve(imgurl,'D:360\\%s.jpg' % x)
- x+=1
- html = getHtml("http://www.nipic.com/show/17742538.html")
- print getImg(html)
- 解释:
- %s意思是字符串参数,就是将变量的值传入到字符串里面,字符串后的'%'后就是写要传入的参数。
- 在你给出的例子中,就是用x的值替代%s。比如说x=5,那么就是爬取url后面是'5.jpg'这个图片
- 保存的位置默认为程序的存放目录
- 如何保存到指定目录:urllib.urlretrieve(imgurl,'D:360\\%s.jpg' % x)
- https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word
- 2、python抓取价格
- 前两个不用加 text
- #-*—coding:utf8-*-
- from lxml import etree
- import urllib
- import urllib.request
- #headers构造一个字典,里面保存了user-agent
- #headers= { 'User-Agent' : 'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' }
- url="http://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&pvid=194960f41c994e81ada43edbc276f54b"
- html = urllib.request.urlopen(url).read()
- data=html.decode('utf-8')
- selector = etree.HTML(data)
- #xpath
- qiubai_text = selector.xpath('//div/ul/li/div/div/strong/i/text()')
- #print(qiubai_text)
- for i in qiubai_text:
- print(i)
- 或者
- #-*—coding:utf8-*-
- from lxml import etree
- import urllib
- import urllib.request
- #headers构造一个字典,里面保存了user-agent
- #headers= { 'User-Agent' : 'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' }
- url="http://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&pvid=194960f41c994e81ada43edbc276f54b"
- html = urllib.request.urlopen(url).read()
- selector = etree.HTML(html)
- #xpath
- qiubai_text = selector.xpath('//div/ul/li/div/div/strong/i/text()')
- #print(qiubai_text)
- for i in qiubai_text:
- print(i)
- 或者 :注意:这个需要加text html.text
- #-*—coding:utf8-*-
- from lxml import etree
- import requests
- #headers构造一个字典,里面保存了user-agent
- #headers= { 'User-Agent' : 'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' }
- url="http://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&pvid=194960f41c994e81ada43edbc276f54b"
- html = requests.get(url)
- selector = etree.HTML(html.text)
- #xpath
- qiubai_text = selector.xpath('//div/ul/li/div/div/strong/i/text()')
- #print(qiubai_text)
- for i in qiubai_text:
- print(i)
- 3、python爬取昵图网图片
- #coding=utf-8
- import urllib
- import re
- def getHtml(url):
- page = urllib.urlopen(url)
- html = page.read()
- return html
- def getImg(html):
- reg = r'src="(.*?)" '
- imgre = re.compile(reg)
- imglist = re.findall(imgre,html)
- x = 0
- for imgurl in imglist:
- urllib.urlretrieve(imgurl,'D:360\\%s.jpg' % x)
- x+=1
- html = getHtml("http://www.nipic.com/show/17742538.html")
- print getImg(html)
- 4、爬音乐
- # coding:utf-8
- import urllib
- import urllib.request
- import re
- url="http://www.yy8844.cn/ting/ccceo/ceeivi.shtml"
- html = urllib.request.urlopen(url).read()
- data=html.decode('GBK')
- #print(data)
- music_id = int(re.findall(r'MusicId=(\d+)',data)[0])
- music_name = re.findall(r'<title>(.*?)</title>',data)[0].split('/')[0].strip()
- music_word = re.findall(r'<div class="textgeci_show" id="showtext">(.*?)</div>',data,re.S)[0]
- article='word'
- with open("%s.txt" % article,'w') as f:
- f.write(music_word)
- #print(music_word)
- quanurl="http://96.ierge.cn/"'%d/%d/%s' % (music_id//30000,music_id//2000,music_id)+".mp3"
- #print(quanurl)
- bata=urllib.request.urlopen(quanurl).read()
- with open("%s.mp3" % music_name,'wb') as f:
- f.write(bata)
- 注意问题:
- music_word = re.findall(r'<div class="textgeci_show" id="showtext">(.*?)</div>',data,re.S)[0]
- python中AttributeError解决
- 【Python 脚本报错】AttributeError:'module' has no attribute 'xxx'的解决方法
- http://blog.csdn.net/cn_wk/article/details/50839159
- int库的.pyc文件
- python 去掉 .pyc
- http://blog.csdn.net/ubuntu64fan/article/details/48241985
- python操作对象属性
- http://www.jianshu.com/p/c38a81b8cb38
- Python学习日记4|python爬虫常见报错小结及解决方法
- http://www.jianshu.com/p/17c921639ad0
- #coding=utf-8
- from Tkinter import *
- import tkMessageBox
- import urllib
- import json
- import mp3play
- import time
- import threading
- from pinyin import PinYin
- import os
- import stat
- test = PinYin()
- test.load_word()
- stop=0
- def music():
- if not entry.get():
- tkMessageBox.showinfo("温馨提示","搜索内容不能为空")
- return
- name = test.hanzi2pinyin_split(entry.get())
- html=urllib.urlopen("http://s.music.163.com/search/get/?type=1&s=%s&limit=9"%name).read()
- js=json.loads(html)
- n = 0
- global x
- x = []
- for i in js['result']['songs']:
- listbox.insert(n,'%s(%s)'%(i['name'],i['artists'][0]['name']))
- n+=1
- x.append(i['audio'])
- count = 0
- #isplaying = None
- def play():
- global count
- count += 1
- index=listbox.curselection()
- var1.set(u"正在加载"+listbox.get(index,last=None))
- urllib.urlretrieve(x[index[0]],'tmp%s.mp3'%str(count))
- var1.set(u"正在播放"+listbox.get(index,last=None))
- mp3=mp3play.load("tmp%s.mp3"%str(count))
- mp3.play()
- time.sleep(mp3.seconds())
- import inspect
- import ctypes
- def _async_raise(tid, exctype):
- """raises the exception, performs cleanup if needed"""
- tid = ctypes.c_long(tid)
- if not inspect.isclass(exctype):
- exctype = type(exctype)
- res = ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, ctypes.py_object(exctype))
- if res == 0:
- raise ValueError("invalid thread id")
- elif res != 1:
- ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None)
- raise SystemError("PyThreadState_SetAsyncExc failed")
- def stop_thread(thread):
- _async_raise(thread.ident, SystemExit)
- threads=list()
- t=None
- def excute(event):
- global t
- for i in threads:
- stop_thread(i)
- t = threading.Thread(target=play)
- t.setDaemon(True)
- t.start()
- threads.append(t)
- root = Tk()#创建一个窗口
- root.title("云音乐")
- root.geometry("500x300+500+200")
- entry=Entry(root)#创建输入框(单行),置父
- entry.pack()
- btn=Button(root,text="搜 索",command=music)
- btn.pack()#布局方式必须用同一种
- var=StringVar()
- listbox=Listbox(root,width=50,listvariable=var)
- listbox.bind('<Double-Button-1>',excute)
- listbox.pack()
- var1=StringVar()
- label=Label(root,text="云音乐播放器",fg="purple",textvariable=var1)
- var1.set("云音乐播放器")
- label.pack()
- root.mainloop()#显示窗口
python爬虫小实例的更多相关文章
- Python_爬虫小实例
爬虫小实例 一.问题描述与分析 Q:查询某一只股票,在百度搜索页面的结果的个数以及搜索结果的变化. 分析: 搜索结果个数如下图: 搜索结果的变化:通过观察可以看到,每个一段时间搜索结果的个数是有所变化 ...
- 一个python爬虫小程序
起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊.“多线程”啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的 ...
- 适合新手的Python爬虫小程序
介绍:此程序是使用python做的一个爬虫小程序 爬取了python百度百科中的部分内容,因为这个demo是根据网站中的静态结构爬取的,所以如果百度百科词条的html结构发生变化 需要修改部分内容. ...
- Python 入门小实例笔记
实例1:打印用户输入的姓名与手机号码知识点:编码,获取输入,变量,标准输出 #encoding=utf-8 import time #1.提示用户输入信息 name = input ("请输 ...
- Python 爬虫入门实例(爬取小米应用商店的top应用apk)
一,爬虫是什么? 爬虫就是获取网络上各种资源,数据的一种工具.具体的可以自行百度. 二,如何写简单爬虫 1,获取网页内容 可以通过 Python(3.x) 自带的 urllib,来实现网页内容的下载. ...
- 找python爬虫小项目?github给你准备好了!
前言 即使我们都是程序员,但我们也并非都会修电脑,都会做酷炫的ppt,都会优化系统卡顿.其实程序员也是分行业.分专业的,就像医生也分内外科.呼吸科.神经科神的. 作为非专业的python选手,或者非专 ...
- 10个python爬虫入门实例
昨天和伙伴萌一块学习,写了几个简单的入门实例 涉及主要知识点: web是如何交互的 requests库的get.post函数的应用 response对象的相关函数,属性 python文件的打开,保存 ...
- python: DOM 小实例
一.全选 全部取消 反选 全选:选择指定的所有项目. 全部取消: 取消所有选定的项目. 反选: 选择未选定的,之前已选定的则取消. <!DOCTYPE html> <html la ...
- Python爬虫小实践:爬取任意CSDN博客所有文章的文字内容(或可改写为保存其他的元素),间接增加博客访问量
Python并不是我的主业,当初学Python主要是为了学爬虫,以为自己觉得能够从网上爬东西是一件非常神奇又是一件非常有用的事情,因为我们可以获取一些方面的数据或者其他的东西,反正各有用处. 这两天闲 ...
随机推荐
- memset初始化数组的坑
memset函数常被我们用来初始化数组,然而有个坑可能会被我们踩到. 静态数组初始化 一般情形是这样的: #include <cstring> int main() { // 静态数组ar ...
- 转 shell中的多进程【并发】
原文地址https://bbs.51cto.com/thread-1104907-1-1.html 根据我个人的理解, 所谓的多进程 只不过是将多个任务放到后台执行而已,很多人都用到过,所以现在讲的主 ...
- 修改Jenkins目录
注意:在Jenkins运行时是不能更改的. 请先将Jenkins停止运行. 1.windows环境下更改JENKINS的主目录 Windows环境中,Jenkins主目录默认在C:\Documents ...
- BZOJ1821 部落划分[最小生成树]
方法一:套路性的,二分距离,然后把距离点对距离小于答案的边都联通起来,然后看集合数量超过k说明答案小,增大,否则减小. 方法二:贪心,类kruskal.n个点,k个连通块,则需要有效连接(同一个块内的 ...
- vue组件开发练习--焦点图切换
1.前言 vue用了有一段时间了,开发的后台管理系统也趋于完善,现在时间比较算是有点空闲吧!这个空闲时间我在研究vue的另外的一些玩法,比如组件,插件等.今天,我就分享一个组件的练手项目--焦点图切换 ...
- python中ord()函数,chr()函数,unichr()函数
ord()函数,chr()函数,unichr()函数 chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符.unichr()跟它一样,只不过返回的是Uni ...
- 如何获取到一个form中的所有子控件?
使用yield关键字,非常的方便 private static IEnumerable<Control> GetChildren(Control frmRootDock) { if (fr ...
- vue3.0以上关于打包后出现空白页和路由不起作用
1.解决页面空白,找不到资源 在项目根目录中的vue.config.js中publicPath: '/'修改为publicPath: './',如果没有这个文件,新建一个,基础代码为: module. ...
- oracle rowtype
v_customer customerinfo%rowtype; select * into v_customer from customerinfo where guid = v_loan.cust ...
- react-native-swiper的Github地址
https://github.com/liyinglihuannan/react-native-swiper https://www.jianshu.com/p/4dba338ef37a(中文版