python中xpath使⽤案例_Python爬⾍(⼗三)_案例:使⽤
XPath的爬⾍
本篇是使⽤XPath的案例,更多内容请参考:Python学习指南
案例:使⽤XPath的爬⾍
现在我们⽤XPath来做⼀个简单的爬⾍,我们尝试爬取某个贴吧⾥的所有帖⼦且将该帖⼦⾥每个楼层发布的图⽚下载到本地。
#-*- coding:utf-8 -*-
#tieba_xpath.py
"""
作⽤:本案例使⽤XPath做⼀个简单的爬⾍,我们尝试爬去某个贴吧的所有帖⼦
"""
import os
import urllib2
易语言初始化教程
import urllib
from lxml import etree
class Spider:
def __init__(self):
self.tiebaName = raw_input("请输⼊需要访问的贴吧: ")
self.beginPage = int(raw_input("请输⼊起始页: "))
self.url = "tieba.baidu/f"
self.ua_header = {"User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1 Trident/5.0;"}
#图⽚编号
self.userName = 1
def tiebaSpider(self):
for page in range(self.beginPage, dPage+1):
pn = (page-1) * 50 #page number
word = {'pn':pn, 'kw':self.tiebaName}
word = urllib.urlencode(word) #转换成url编码格式(字符串)
myUrl = self.url + "?" + word
#调⽤ 页⾯处理函数load_Page
#并且获取页⾯所有帖⼦链接
links = self.loadPage(myUrl) #urllib2_test3.py
#获取页⾯内容
def loadPage(self, url):
req = urllib2.Request(url, headers = self.ua_header)
html = urllib2.urlopen(req).read()
#解析html为HTML DOM⽂档
selector = etree.HTML(html)
#抓取当前页⾯的所有帖⼦的url的后半部分,也就是帖⼦编号
links = selector.xpath('//div[@class="threadlist_lz clearfix"]/div/a[@rel="noreferrer"]/@href') #links类型为etreeElementString列表
#遍历列表,并且合并为⼀个帖⼦地址,调⽤图⽚处理函数loadImage
for link in links:
link = "tieba.baidu" + link
self.loadImage(link)
#获取图⽚
def loadImage(self, link):
req = urllib2.Request(link, headers = self.ua_header)
html = urllib2.urlopen(req).read()
selector = etree.HTML(html)
#获取这个帖⼦⾥⾯所有图⽚的src路径
imageLinks = selector.xpath('//img[@class="BDE_Image"]/@src')
#依次取出图⽚路径,下载保存
for imageLink in imageLinks:
self.writeImages(imageLink)
#保存页⾯内容
def writeImages(self, imageLink):
"""
将images⾥的⼆进制内容存⼊到userName⽂件中
"""
print(imageLink)
print "正在存储⽂件 %d..."%self.userName
#1.打开⼀个⽂件,返回⼀个⽂件对象
file = open('./images/'+str(self.userName) + '.png', 'wb')python教材下载
#获取图⽚⾥内容
images = urllib2.urlopen(imageLink).read()
#调⽤⽂件对象write()⽅法,将page_html的内容写⼊到⽂件⾥
file.write(images)
#最后关闭⽂件
file.close()
#计数器⾃增1
self.userName += 1
#模拟__main__函数:
if __name__ == '__main__':
#⾸先创建爬⾍对象
mySpider = Spider()
in power是什么意思#调⽤爬⾍对象的⽅法,开始⼯作
mySpider.tiebaSpider()
单机标题弹出内容网页特效
Python爬⾍(⼗⼀)_案例:使⽤正则表达式的爬⾍
本章将结合先前所学的爬⾍和正则表达式知识,做⼀个简单的爬⾍案例,更多内容请参考:Python学习指南 现在拥有了正则表达式这把神兵利器,我们就可以进⾏对爬取到的全部⽹页源代码进⾏筛选了. 下⾯我们⼀起 ...
[b0028] python 归纳 (⼗三)_队列Queue在多线程中使⽤
# -*- coding: UTF-8 -*- """ 多线程同时读队列 总结: 1. 会阻塞 if self._jobq.qsize() > 0 进⼊逻辑,此时被 ...
在线转换文件
洗礼灵魂,修炼python(71)--爬⾍篇—【转载】xpath/lxml模块,爬⾍精髓讲解
Xpath,lxml模块⽤法 转载的原因和前⾯的⼀样,我写的没别⼈写的好,所以我也不浪费时间了,直接转载这位崔庆才⼤佬的 原帖链接:传送门 以下为转载内容: --------------------- ...
案例_(单线程)使⽤xpath爬取糗事百科
案例_(单线程)使⽤xpath爬取糗事百科 步骤如下: ⾸先通过xpath插件出我们要爬取的信息的匹配规则 url =
"www.qiushibaike/8hr/p ...
Python 爬⾍ 解析库的使⽤ --- XPath
⼀.使⽤XPath XPath ,全称XML Path Language,即XML路径语⾔,它是⼀门在XML⽂档中查信息的语⾔.它最初是⽤来搜寻XML⽂档的,但是它同样适⽤于HTML⽂档的搜索. 所 ...
⼩⽩学 Python 爬⾍(20):Xpath 进阶
⼈⽣苦短,我⽤ Python 前⽂传送门: ⼩⽩学 Python 爬⾍(1):开篇 ⼩⽩学 Python 爬⾍(2):前置准备(⼀)基本类库的安装 ⼩⽩学 Python 爬⾍(3):前置准备(⼆)Li ...
python爬⾍(⼀)_爬⾍原理和数据抓取
本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬⾍ 著名的⾰命家.思想家.政治家.战略家.社会改⾰的主要领导⼈物马云曾经在2015年提到由IT转到DT,何谓DT,DT ...
5个python爬⾍教材,让⼩⽩也有爬⾍可写,含视频教程!
认识爬⾍   ⽹络爬⾍,如果互联⽹是⼀张蜘蛛⽹,⽹络爬⾍既是⼀个在此⽹上爬⾏的蜘蛛,爬了多少
路程即获取到多少数据. python写爬⾍的优势   其实以上功能很多语⾔和⼯具都能做,但是⽤python爬 ...
随机推荐
⽊马轮播图代码Jq
效果图(将就⼀下)
jedis:exception is java.lang.VerifyError: Bad type on operand stack
项⽬中需要⽤到缓存,经过⽐较后,选择了redis,客户端使⽤jedis连接,也使⽤到了spring提供的spring-data-redis.配置正确后启动tomcat,发现如下异常: ======== ...
SAM4E单⽚机之旅——14、LCD之SMC的配置
在上个例⼦中,已经在ASF添加了ILI93xx模块,并做好了相关的声明.这次就做好SMC的配置,然后使⽤ASF提供的API在屏幕上打印
出”Hello World!”字样. ⼀. 电路图 开发板的LCD ...
VBOX安装Centos设置分辨率为1366x768[已解决]
最近想了解下GTK+,但是对于直接在系统上搭建环境有点⼼⾥阴影,怕⼜把桌⾯玩挂,所以打算在虚拟机中先试试 本来打算使⽤Fedora的,怕gnome太吃资源所以下了个xfce的,不过貌似有BUG,⽆法安 ...
教你成为全栈⼯程师(Full Stack Developer) 〇-什么是全栈⼯程师
作为⼀个编码12年的⼯程师⽼将,讲述整段⼯程师的往事,顺便把知识都泄露出去,希望读者能少⾛⼀些弯路. 这段往事包括:从不会动的静态⽹页到最流⾏的⽹站开发.实现⾃⼰的博客⽹站.在云⾥雾⾥的云中搜索.⼤数 ...
强制删除sql⽤户链接
SELECT 'alter system kill session '''||sid||','||serial#||''';' FROM v$session WHERE username='USER' ...
C# 汉字转拼⾳ 将中⽂转换成拼⾳
//建⽴⼀个公共类,⽤于转换汉字 public class ChnToPh { //定义拼⾳区编码数组 private static int[] getValue = new int[] { -,-, ...
win7 远程桌⾯连接过程
匹配函数匹配不出来背景:在公司⽇常⼯作中经常需要是⽤到远程桌⾯的连接,在内⽹环境下,远程桌⾯连接⽐qq更加⽅便!可以考虑外⽹的连接. 1 准备⼯作 这⾥我实验的另⼀台机器的ip:168.33.51.198,本机ip:1 ...
springBoot中的定时任务
springBoot中的定时任务 1:在Spring Boot的主类中加⼊@EnableScheduling注解,启⽤定时任务的配置 2:新建ScheduledTasks任务类 : package c ...
Handler基本运⾏机制
Handler,Looper,MessageQueue的基本原理(三个组成⼀个消息处理机制)最⼤的作⽤就是实现线程间的通信 Handler负责把消息对象加⼊到消息队列当中 Looper(循环器)是⼀个 ...

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。