如何查看360手机应用搜索种类的前5页的信息
优采云 发布时间: 2021-05-08 18:05如何查看360手机应用搜索种类的前5页的信息
我们不会一想到抓取网页就开始编写一个scrapcrawler。事实上,根据需要选择合适的方式抓取网页更有效
比如抓取360手机各类应用前5页的信息。我们直接分析请求消息的样式,模拟发送消息,然后分析返回的内容以获得所需的信息,而不是编写草图。更重要的是,对于一些JS动态加载的内容(比如在googleplay上抓取应用程序),这种方法可以获得重要的信息,然后配合抓取得到更好的结果。在这种情况下,我们只使用发送请求的方法来捕获
需求:抢占360手机应用搜索类前五页。例如:
[第21页]
在搜索栏中输入游戏,这些应用程序就会出现(按类别搜索,都一样)。我们要采集这些游戏的信息。这里,作为一个例子,只需获取应用程序的包名
这里不详细介绍如何查看浏览器请求消息。F12打开浏览器查找并返回请求的信息。一般来说,您可以从前端开始查看网络中的信息,然后查看响应返回所需的信息
[第22页]
这就是我们需要的信息。查看标头以找到模拟发送请求所需的信息。我不在这里重复了。360网站请求的头URL实际上是URL。例如,单击下一页后,URL为:
[第23页]
这是发送请求的格式。只要URL构造得好,就可以随意获取数据。例如,如果选择“运动”类别第三页的内容,则连接将为“运动&;页码=3
等等。您可以使用chrome插件postman来验证返回的结果,也可以在请求之后直接打印结果。你会知道这是不是对的。我们直接去看节目吧
#-*-编码:utf-8-*-
导入系统
重新加载(sys)
系统设置默认编码(“utf-8”)
*敏*感*词*刮痧
从scrapy.crawler导入CrawlerProcess
#从scrapy.utils.project import获取\项目\设置
#从数据库导入TSFDataBase
导入urllib
导入urllib2
从lxml导入etree
A*敏*感*词*ind=[‘阅读’、‘商业’、‘*敏*感*词*’、‘通信’、‘教育’、‘娱乐’、‘金融’、‘游戏’、‘健康’、‘书籍’、‘生活’、‘动态壁纸’、‘视频’、‘医疗’、‘音乐’、‘新闻’、‘个性化’、‘摄影’、‘效率’、‘购物’、‘社交网络’、‘体育’、‘工具’、‘旅游’,'运输','天气']
fileWriteObj=open('360app.txt','w')
打印长度(a*敏*感*词*ind)
对于范围内的ikind(len(a*敏*感*词*ind)):
对于范围内的ipage(5):
打印ipage
数据={}
数据['page']=ipage+1
test\ data\ urlencode=urllib.urlencode(数据)
url=“”+a*敏*感*词*ind[ikind]+“&;page=“+str(ipage+1)”
data1=urllib.urlencode(数据)
req=urllib2.请求(url,数据1)
响应=urllib2.urlopen(请求)
结果=response.read()
#打印结果
如果isinstance(结果,unicode):
通过
其他:
result=result.decode('utf-8')
tree=etree.HTML(结果)
ranks=tree.xpath('//div[@class=“download comdown”]/a/@href')
打印长度(列)
#ids=tree.xpath('//div[@class=“card no.small”]/div/div[2]/a[2]/@href')
对于范围内的i(len(ranks)):
apppack=等级[i]
apppack=apppack[apppack.rfind('/')+1:apppack.rfind(''\')]
onedata=apppack+','+str(ikind+1)
打印onedata
fileWriteObj.write(onedata+'\n')
打印'------------'
fileWriteObj.close()
如果名称==''主名称:
通过
结果:包名后面跟着分类号,例如,reading 1
[k30公里]
程序在关键词中搜索26个应用程序。每个应用程序抓取前五页并直接存储文本以便于显示。至于XPath之类的知识,我就不重复了。稍后,我将整理如何处理JS加载内容的爬网