核心代码以下:python
主要用到:requests、re插件
数据库
这里写入数据库用到了openpyxl 本身封装了一个类ExcelsOperate.pyjson
openpyxl的使用能够参考Python---读取Excel的方法(方法二)
微信
须要ExcelsOperate.py工具类的能够关注公众号,私聊。app
import json
import requestsimport refrom ExcelsOperate import ExcelsOperateclass appSpider: def __init__(self,orgame): self.orgame=orgame self.worksheet=ExcelsOperate(); url1="https://sj.qq.com/myapp/category.htm?orgame="+orgame response=requests.get(url1) result1=response.content.decode("utf-8") print(result1) #正则匹配菜单 patter=re.compile(r"<a href=\"\?orgame=[1,2]&categoryId=(.*)\">(.*)</a></li>") self.typedata=re.findall(patter,result1,flags=0)
def getAppinfo(self): row=1 i=0 while(i<len(self.typedata)): url1="https://sj.qq.com/myapp/category.htm?orgame="+self.orgame+"&categoryId="+self.typedata[i][0] print(url1) # 正则匹配应用 patter2="<a href=\"detail.htm\?apkName=(.*)\" target=\"_blank\" class=\"name ofh\">(.*)</a>" result2=requests.get(url1) result2=result2.content.decode("utf-8") re.compile(patter2) data=re.findall(patter2,result2,flags=0) j=1 # 写入到Excel中 while(j<len(data)): self.worksheet.write_Cell_Value(row,1,data[j-1][0]) self.worksheet.write_Cell_Value(row, 2, data[j - 1][1]) self.worksheet.write_Cell_Value(row,3,self.typedata[i][1]) j=j+1 row=row+1 pagecontext = 40 #首页会拉取显示40条数据,更多的应用经过applist接口获取的。每次获取20条,直到返回空,接口放回的是Json数据 while(True): url2="https://sj.qq.com/myapp/cate/appList.htm?orgame="+self.orgame+"&categoryId="+self.typedata[i][0]+"&pageSize=20&pageContext="+str(pagecontext) print(url2) data=requests.get(url2) data=data.content.decode("utf-8") data=json.loads(data) k=0 data=data["obj"] if data==[]: break #写入到Excel中 while (k < len(data)): self.worksheet.write_Cell_Value(row, 1, data[k]["pkgName"]) self.worksheet.write_Cell_Value(row, 2, data[k]["appName"]) self.worksheet.write_Cell_Value(row, 3, self.typedata[i][1]) j = j + 1 row = row + 1 print(data[k]["pkgName"]) k=k+1 pagecontext=pagecontext+20; i=i+1if __name__=="__main__": orgame="2" appSpider=appSpider(orgame) appSpider.getAppinfo()
本文分享自微信公众号 - 软件测试道与术(UTesting)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。ide