Traceback (most recent call last):
  File "androidmarket82.py", line 108, in <module>

    main()

  File "androidmarket82.py", line 54, in main

    pattern=re.compile('<label id="ctl00_AndroidMaster_Content_Apk_SoftVersionName">(.+?)</label>)</div>')#版本号

  File "/usr/lib/python2.7/re.py", line 190, in compile

    return _compile(pattern, flags)

  File "/usr/lib/python2.7/re.py", line 242, in _compile

    raise error, v # invalid expression

sre_constants.error: unbalanced parenthesis

#!/usr/env  python
#-*- coding: utf-8 -*-
import requests
import os,sys
import time
import MySQLdb
import re
num=0
dataresult=[]
def main():
try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='addressbookdb',charset="utf8")
conn.query("set names utf8")
except Exception,e:
print e
sys.exit()
cursor=conn.cursor()
for k in range(51):
try: url="http://apk.hiapk.com/apps#"+str(k)+"_1_0_0_0_0_0"
print url
html=requests.get(url)
result=html.content
pattern=re.compile('''<a target='_blank' title=".+?" href="(.+?)">.+?</a></span>''')
daresult=re.findall(pattern,result)
global dataresult
dataresult+=daresult
dataresult=list(set(dataresult))
print len(dataresult)
except: time.sleep(30)
pass f=file("androidmarket.txt","a+")
content=str(len(dataresult))
f.write(content)
f.close()
print len(dataresult)
for i in dataresult: print i
try:
html=requests.get(i)
result=html.content
except:
time.sleep(30)
pass
pattern=re.compile('<label id="ctl00_AndroidMaster_Content_Apk_SoftName">(.+?)</label>')#名称
data0=re.findall(pattern,result)
print data0[0]
pattern=re.compile('<label id="ctl00_AndroidMaster_Content_Apk_SoftVersionName">(.+?)</label>)</div>')#版本号
data1=re.findall(pattern,result)
print data1[0]
pattern=re.compile('<span class="d_u_line"><label id="ctl00_AndroidMaster_Content_Apk_SoftDeveloper">(.+?)</label>')#开发者
data2=re.findall(pattern,result)
print data2[0]
pattern=re.compile('<label id="ctl00_AndroidMaster_Content_Apk_SoftPublishTime">(.+?)</label>')#发布时间
data3=re.findall(pattern,result)
print data3[0]
pattern=re.compile('<span class="font14"><label id="ctl00_AndroidMaster_Content_Apk_SoftSize">(.+?)</label>')#文件大小
data4=re.findall(pattern,result)
print data4[0]
pattern=re.compile('<span class="font14 d_gj_line"><label id="ctl00_AndroidMaster_Content_Apk_SoftSuitSdk">(.+?)</label>')#支持固件
data5=re.findall(pattern,result)
print data5[0]
pattern=re.compile('<span id="ctl00_AndroidMaster_Content_Apk_SoftCategory" class="font14">(.+?)</span></a></span></div>')#类别
data6=re.findall(pattern,result)
print data6[0]
pattern=re.compile('<label id="ctl00_AndroidMaster_Content_Apk_Description">([\s\S]*?)</label>')#介绍
data7=re.findall(pattern,result)
for items in data7:
pass#print re.sub('<br />',' ',items)
sql="insert into androidmarket(name,version,developer,pubtime,filesize,support,classifyintroduction) values(%s,%s,%s,%s,%s,%s,%s,%s)"
for items in data7:
try: values=(data0[0],data1[0],data2[0],data3[0],data4[0],data5[0],data6[0],re.sub('<br />',' ',items)) except:
pass
try:
cursor.execute(sql,values)
conn.commit()
except:
pass
pattern=re.compile(' <div class="appTitle clearfix">[\s\S]*?<img src=(.+?)/>')
data=re.findall(pattern,result)
for j in data:
print j try:
temp=requests.get(j[1:-2])
except:
time.sleep(30)
pass
global num
f=file("androidmarket/"+str(num),"w+")
num=num+1
print num
f.write(temp.content)
cursor.close()
conn.close()
f.close()
if __name__=="__main__":
main()

sre_constants.error: unbalanced parenthesis的更多相关文章

  1. System Error Codes

    很明显,以下的文字来自微软MSDN 链接http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx M ...

  2. winerror.h中的内容(可以查看last error对应)

    /************************************************************************* ** winerror.h -- error co ...

  3. Windows Error Codes

    http://www.briandunning.com/error-codes/?source=Windows Windows Error Codes List All Error Codes | S ...

  4. Shell script fails: Syntax error: “(” unexpected

    Shell script fails: Syntax error: “(” unexpected google 一下. http://unix.stackexchange.com/questions/ ...

  5. matlab画图(一)

    例1.画出函数图像 >> x=-pi/2:0.01:pi/2; >> y=x+sin(x)+exp(x); >> plot(x,y,'r','Linewidth', ...

  6. 让ecshop模板支持php运算

    让ecshop模板支持php运算在 cls_template.php 底部加入函数: /** * 处理if标签 * * @access public * @param string $tag_args ...

  7. 【JAVA】通过公式字符串表达式计算值,网上的一种方法

    public class Test {    public static void main(String[] args) {     SimpleCalculator s=new SimpleCal ...

  8. angularJs的ui-router总结

    一:跑通ui-router. ui-router源码在最后面 跑通后的样子: 这个不解释了,都是很基本的东西. 二:切换视图: 这里的name可以不写,但是你得放到state的第一个参数里. 跑起来后 ...

  9. python的正则表达式 re

    python的正则表达式 re 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一 ...

随机推荐

  1. 【Mysql】命令行

    查看数据库->show databases; 建数据库->create database 数据库名; 建表->use 数据库名;->create table 表名(字段); 查 ...

  2. 怎么制作生成苹果手机app应用的下载二维码图片

    原文网址:http://jingyan.baidu.com/article/8065f87ff654262331249886.html app store应用生成二维码操作步骤: 1.首先在MAC上的 ...

  3. android adt与android sdk有什么关系,他们在开发中各起到什么作用

    ADT(Android Development Tools):目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级 ...

  4. JS调试必备的5个debug技巧

    我一直使用printf调试程序,一般来说都是比较顺利,但有时候,你会发现需要更好的方法.下面几个JavaScript技巧相信你一定会觉得十分有用   1. debugger; 我以前也说过,你可以在J ...

  5. MOSS 2010:Visual Studio 2010开发体验(14)——列表开发之事件接收器

    转:http://boke.25k5.com/kan141919.html 通过前面几篇,我们已经完成了内容类型,列表定义,列表实例g 8h"@的开发.本篇继续讲解列表中的一个重要环节- ...

  6. git中reset与revert的使用

    http://alpha-blog.wanglianghome.org/2010/07/30/git-partial-rollback/ reset(版本撤回) 格式 git reset [-q] [ ...

  7. POJ 1064 Cable master

    Cable master Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 37865   Accepted: 8051 Des ...

  8. JMeter使用jar进行压力测试

    最近需要对改造的redis缓存接口做压力测试,使用了开源压力测试工具JMeter,分享一下自己的使用经验,希望能对需要进行压力测试的开发同学有所帮助. JMeter介绍 JMeter是Apache软件 ...

  9. C++实现网格水印之调试笔记(二)

    整理了一下要实现的论文Watermarking 3D Polygonal Meshes in the Mesh Spectral Domain,步骤如下: 嵌入水印 à 提取水印 à 优化(网格细分) ...

  10. ASP.NET MVC之Html.RenderAction

    WEB窗体模式开发惯了,切入MVC模式,好多东西都不懂,每一步都要查资料. 初步得来的一些知识点体会是: _Layout.cshtml就相当于母版页 然后partical视图(部分视图)就是用户控件. ...