一个简单的Python写的XML爬虫

来源:程序员人生 发布时间:2013-11-06 16:22:29 阅读次数:1578次

原理很简单,读XML结构,返回值,判断,根据返回的值得到下一个XML的地址,判断

PY的class和PHP差不多,思路是一样的

#-*- encoding: utf-8 -*-

import codecs

import sys

import threading

from urllib import urlencode

from urllib2 import urlopen

from xml.dom.minidom import parseString

class Serach:

def __init__(self, key=None):

self.key = key

def SendPy(self, key):

try:

contentpy = urlopen("http://xxxx.com/ac_box?ac=" + self.key).read()

except:

print ("down load py!")

try:

xmldoc = parseString(contentpy)

except:

print ("ill formed xml file")

root = xmldoc.documentElement

''分析XML的结构,得到数组

keyList = root.getElementsByTagName('SuggestWord')

return keyList

def SendKey(self, keyword):

keyword = keyword.encode('gbk')

tupleList = []

try:

''读XML地址,转码

content = urlopen("http://xxxx.com/btinfo?keyword=" + keyword + "&num=1").read()

content = unicode(content, "cp936").encode("utf-8")

except:

print ("down load key!")

''替换

content = content.replace('''<?xml version="1.0" encoding="gbk"?>''', '''<?xml version="1.0" encoding="utf-8"?>''')

try:

xmldoc = parseString(content)

except:

print ("ill formed xml file")

try:

query = xmldoc.getElementsByTagName('Query')[0]

tupleList = query.getAttribute('ErrorCode')

except:

tupleList = 104

return tupleList

def run(self):

ls = self.SendPy(self.key)

count = len(self.key)

cur = self.conn.cursor()

str = ''

for doc in ls:

tuple = doc.firstChild.data

text = self.SendKey(tuple)

if text == '0':

test = self.MySQLKey(tuple)

if test != '2':

str = str + tuple + '|' + test + ','

if count > 3:

sitetag = self.MySQLPy(self.key)

if sitetag != ():

for x in sitetag:

tsql = "xxxx"

cur.execute(tsql)

#print(cur.fetchall())

for s in cur.fetchall():

if (s[0]=='rmvb') or (s[0]=='rm'):

r = '0'

else:

r = '1'

str = str + x[0] + '|' + r + ','

str = str[:-1]

else:

str = str[:-1]

#转成数组后过滤重复字段

strtag = list(set(str.split(',')))

sText = ','.join(strtag)

file_object = codecs.open(self.savePath + self.key + '.txt', 'w', 'utf-8')

file_object.write(sText)

file_object.close()

if __name__ == "__main__":

if len(sys.argv) > 1:

s = Serach(sys.argv[1]);

s.run()

php和python写爬虫-一个简单的Python写的XML爬虫相关推荐

  1. 一段简单的python代码_一个简单的python写的C/S程序

    前段时间闲来无聊,打算学习下python,看了半个月的书,貌似啥都没学会.有个朋友让说,让我帮他写个批量管理linux服务器的程序,我一想就用python来写吧,于是看了下书,然后修修改改,一个soc ...

  2. 一个简单的python爬虫程序

    #简介 在每次论文被拒再投的过程中,都需要查询最近的与自己论文相关的会议列表.每到这种情况,我一遍采用的是遍历会伴www.myhuiban.com的网站,然后逐个查看会议,关注的有三点,投稿日期,cc ...

  3. 如何搭建python框架_从零开始:写一个简单的Python框架

    原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...

  4. 利用python爬取知乎评论_一个简单的python爬虫,爬取知乎

    一个简单的python爬虫,爬取知乎 主要实现 爬取一个收藏夹 里 所有问题答案下的 图片 文字信息暂未收录,可自行实现,比图片更简单 具体代码里有详细注释,请自行阅读 项目源码: 1 # -*- c ...

  5. python脚本编写_如何用Python包编写一个简单的脚本,表达你对父母的爱?

    全文共2800字,预计学习时长6分钟 在繁忙的工作生活中,我们经常忘记给所爱的人发WhatsApp.本教程将使用Python包Twilio编写一个简单的Python脚本来发送WhatsApp消息.我们 ...

  6. 如何编写一个简单的 Python 程序

    本教程将教你如何编写一个简单的 Python 程序.我们将从解释 Python 程序是什么开始,然后继续讨论语法的各个方面,即语言的结构. 什么是 Python? Python是一种越来越受欢迎的编程 ...

  7. 作业1开发一个简单的python计算器

    开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568 ...

  8. 最近写了一个简单的面向对象的脚本语言 Q 语言

    最近写了一个简单的面向对象的脚本语言 Q 语言,语法类似于 Javascript, 加入了一些 python 的语法功能. 同时实现了部分的 Javascript prototype 的功能 (个人觉 ...

  9. 神经网络和深度学习(二)——一个简单的手写数字分类网络

    本文转自:https://blog.csdn.net/qq_31192383/article/details/77198870 一个简单的手写数字分类网络 接上一篇文章,我们定义了神经网络,现在我们开 ...

最新文章

  1. 扩增子分析QIIME2(2018.6). 1简介和安装
  2. labview 软件编程规范
  3. vue的父子组建之间的通信(-),基于props和$emit之间的传递
  4. linux memalign、valloc函数
  5. [导入]关于复制目录架构
  6. linux应用程序逆向,Linux下查看并下载命令源码包(根据命令/应用程序逆向获取并且安装其所属源码包)...
  7. Django有办法打开HTTP长轮询连接吗?
  8. 【转】HttpCompress
  9. jquery 表单 清空
  10. Kubernetes详解(二十四)——Deployment控制器更新实战与查看
  11. HTML5期末大作业:关于旅游主题网站设计——开心网旅游网页源码(15页) HTML+CSS+JavaScript
  12. 数据库表连接之左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)
  13. java 无锁并发_高并发情况下怎样尽量实现无锁编程
  14. poi批量导入导出Excel(三、通过模板导出Excel并能实现导入多个sheet表)
  15. labview信号频域分析算法
  16. .NET C# winform窗体假死
  17. 【计算机网络】谢希仁笔记 运输层
  18. Centos 7安装java 17
  19. 云风Skynet——skynet非官方网站
  20. 【零基础入门学习Python】入门:我和Python的第一次亲密接触

热门文章

  1. OpenStack 通用设计思路
  2. 【高德地图开发1】---简介
  3. oracle设置超时时间
  4. 微软称HTML5是IE 9的核心 要尽快淘汰IE 6
  5. python快速入门 pdf-十分钟快速入门python
  6. python切片语法-python切片语法
  7. python爬虫框架排行榜-常用python爬虫框架整理
  8. python学多久可以做项目-怎么自学python,大概要多久?
  9. python爬虫招聘-Python爬虫实战-抓取boss直聘招聘信息
  10. 学python心得体会500字-Python初学心得体会