unbalanced parenthesis




#!/usr/env  python
#-*- coding: utf-8  -*-
import urllib 
import urllib2 
import random 
import requests
import os,sys 
import MySQLdb
from sgmllib import SGMLParser 
from BeautifulSoup import BeautifulSoup
import re
num=0
def main():
	#try:
		#conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='googlemarket',charset="utf8")
		#conn.query("set names utf8")
	#except Exception,e:
		#print e
		#sys.exit()
	#cursor=conn.cursor() 
	#for k in range(0,34):
		url="https://play.google.com/store/apps/details?id=com.androidesk&hl=zh_CNhttps%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.androidesk"
		#print k
		html=requests.get(url)
		preresult=html.content
		soup=BeautifulSoup(preresult)
		result=soup.prettify("utf-8")
		#名称
		pattern=re.compile('itemprop="name">[\s\S]*?<div>([\s\S]*?)</div>')
		data0=re.findall(pattern,result)
		for items in data0:
			print itemsunbalanced parenthesis
		#制造商
		pattern=re.compile('itemprop="name">([\s\S]*?)</a>')
		#data1=re.findall(pattern,result)
		#for items in data1
			#print items
		#版本
		pattern=re.compile('itemprop="softwareVersion">([\s\S]*?)</div>')
		data2=re.findall(pattern,result)
		print data2[0]
		#更新时间 
		pattern=re.compile('itemprop="datePublished">([\s\S]*?)</div>')
		data3=re.findall(pattern,result)
		#print data3[0]
		#文件大小
		pattern=re.compile('itemprop="fileSize">([\s\S]*?)</div>')
		data4=re.findall(pattern,result)
		#print data4[0]
		#支持固件
		pattern=re.compile('itemprop="operatingSystems">([\s\S]*?)</div>')
		data5=re.findall(pattern,result)
		#print data5[0]
		#说明
		pattern=re.compile('itemprop="description">[\s\S]*?<div>([\s\S]*?)</div>')
		data6=re.findall(pattern,result)
		for items in data6:
			pass#print re.sub('<br />',' ',items)
			#sql="insert into address(name,version,developer,pubtime,filesize,support,introduction) values(%s,%s,%s,%s,%s,%s,%s)"
			#for items in data6:
			
				#if(data5):
					#values=(data0[0],data1[0],data2[0],data3[0],data4[0],data5[0],re.sub('<br />',' ',items))
				#else:
					#values=(data0[0],data1[0],data2[0],data3[0],data4[0],'NULL',re.sub('<br />',' ',items))
				#print values
				#print sql % values
				#cursor.execute(sql,values)
				#conn.commit()
		pattern=re.compile('<img class="cover-image" src="(.+?)" alt')
		data=re.findall(pattern,result)
		global num
		for j in data:
			temp=requests.get(j[1:-2])
			f=file("googlemarket/"+str(num),"w+")
			f.write(temp.content)
	
			
		
				
	
    
if  __name__=="__main__":
       main()



Traceback (most recent call last):
  File "crawler0729.py", line 85, in <module>
    main()
  File "crawler0729.py", line 56, in main
    pattern=re.compile('itemprop="description">[\s\S]*?<div>"([\s\S]*?)"</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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
抱歉,我之前给出的正则表达式中有一个错误。在正则表达式中,括号需要进行转义,所以在你的模式中的两个括号需要改为`\(`和`\)`。以下是修改后的代码: ```python import re html = ''' <html> <meta http-equiv="Content=-Type" content="text/html; charset=utf-8"/> <head> <link href="http://192.167.1.101/hint.css" rel="stylesheet"></link> </head> <body>[talkid:137031381]2014年4月20日 03:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 我们已经是dffwerwer天吧! [talkid:137031382]2014年4月22日 04:45:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 音频 :[<a href="files/24434sfsfsjdfrhf_n.m4a"]>音频</a> [talkid:137031383]2014年4月23日 04:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 图片 :[<a href="files/f/f123ftrtrhf_n.jpg"]>图片</a> [talkid:137031384]2014年4月24日 05:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 我们已方式方法方式 [talkid:137031385]2014年4月25日 06:55:45 , <span class="hint-success" data-hint="">2323234</span> 在群 <span class="hint-success" data-hint="">20011</span> 中发言 我而对方是否的天吧! </body> </html> ''' pattern = r'\(发送|中发言\)\s*(.*?).*?(音频 :|图片 :).*?(\[.*?\])' matches = re.findall(pattern, html, re.DOTALL) for match in matches: content = match[0] content_type = match[1] file_link = match[2] if content_type == '音频 :': print(f"音频链接地址: {file_link}") elif content_type == '图片 :': print(f"图片链接地址: {file_link}") else: print(f"发言字段: {content}") ``` 请尝试运行修改后的代码,并检查是否有任何错误。如果还有问题,请告诉我。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值