找回密码
 立即注册

有没有能抓取微信小程序的采集器或爬虫工具?

匿名  发表于 2023-3-20 10:50:45 阅读模式 打印 上一主题 下一主题
看了很多收集器都是只能抓取网页的数据,现在题目是很多不更新网页了,数据都更新在微信小法式上,求一款能收集微信小法式的工具或收集器
回复

使用道具

大神点评

ddd2089 2023-3-20 10:51:47 显示全部楼层
小法式爬虫

前言

对于开辟者来说,小法式爬虫是一个很是有用的工具,可以经过爬取分歧的数据源来丰富小法式的内容,提升用户体验。本文将先容若何利用小法式爬虫,收集某些网站的数据,并展现一个具体的案例。
什么是小法式爬虫

小法式爬虫是指操纵收集爬虫技术,获得指定方针网站的数据,并将数据以指定格式显现在小法式上的一种开辟技术。通太小法式爬虫,开辟者可以在小法式中展现各类内容,包括但不限于消息、文章、电影信息、音乐等等。
小法式爬虫的优弱点

小法式爬虫的优点有:

  • 丰富小法式内容:通太小法式爬虫,可以获得各类网站的数据,从而为小法式供给更多的有代价的内容。
  • 提升用户体验:通太小法式爬虫,可以为用户供给更多的新颖信息和数据,从而进步用户体验。
小法式爬虫的弱点有:

  • 法令风险:在爬虫进程中,需要遵照某些法令律例,比如不能加害他人的常识产权等。
  • 数据牢靠性:由于数据的来历不是官方渠道,是以数据的牢靠性不如官方数据。
  • 能够被封禁:假如爬虫频仍拜候某些网站,能够会被网站封禁。
小法式爬虫的实现方式

小法式爬虫的实现方式有以下几种:

  • 经过API获得数据:有些网站供给API接口,可以经过挪用API获得数据。
  • 剖析HTML页面:有些网站没有供给API接口,可以经过剖析HTML页面获得数据。
  • 经过chrome-headless模拟阅读器:某些网站有反爬虫机制,可以经过模拟阅读器来避免被封禁。
一个小法式爬虫实战

在这个案例中,我们将利用第二种方式,即剖析HTML页面的方式,来实现爬虫。这里我挑选了豆瓣电影作为方针网站,经过爬虫获得正在上映的电影信息并在小法式中显现。
1. 分析方针网站

在起头编写爬虫之前,我们需要先分析一下方针网站的网页结构,并肯定我们需要抓取的数据。翻开豆瓣电影首页,我们可以看到正在上映的电影信息:
我们想要在小法式中展现的信息有:

  • 电影名
  • 评分
  • 导演
  • 演员
为了获得这些信息,我们需要对源代码停止剖析。
2. 编写爬虫剧本

在这个案例中,我们利用Python来编写爬虫剧本。具体的实现可以分为以下几步:

  • 获得HTML页面:利用requests模块发送get请求,获得页面源代码;
  • 剖析HTML页面:利用beautifulsoup4模块剖析HTML页面,获得我们需要的信息;
  • 输出数据:将获得的数据以指定格式输出。
下面是完整的Python代码:
  1. import requests
  2. from bs4 import BeautifulSoup
  3. # 请求头部信息
  4. headers = {
  5.     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
  6. # 豆瓣电影正在上映的URL
  7. url = "https://movie.douban.com/cinema/nowplaying/"
  8. # 发送get请求,获得页面源代码
  9. try:
  10.     response = requests.get(url, headers=headers)
  11.     response.encoding = 'utf-8'
  12. except requests.exceptions.RequestException as e:
  13.     print(e)
  14.     exit(1)
  15. # 剖析HTML页面
  16. soup = BeautifulSoup(response.text, "html.parser")
  17. movie_list = soup.find_all("li", class_="list-item")
  18. # 输出数据
  19. for movie in movie_list:
  20.     # 电影名
  21.     title = movie.find_all("a", class_="ticket-btn")[0]['data-subject']
  22.     # 评分
  23.     score = movie.find_all("span", class_="subject-rate")[0].string.strip()
  24.     # 导演
  25.     director = movie.find_all("p")[0].string
  26.     # 演员
  27.     actor = movie.find_all("p")[1].string
  28.     # 输出成果
  29.     print("电影名:", title)
  30.     print("评分:", score)
  31.     print("导演:", director)
  32.     print("演员:", actor)
  33.     print("=======================")
复制代码
上面的代码中,我们首先为请求增加一个User-Agent头部信息,用于模拟阅读器发送请求。然后再发送get请求,获得页面源代码,并利用beautifulsoup4模块剖析HTML页面,获得我们需要的信息。最初我们采用print函数将成果输出到控制台上。
在控制台中运转上面的代码,我们可以获得以下成果:
  1. 电影名: 心灵奇旅
  2. 评分: 8.6
  3. 导演: 彼得·多格特
  4. 演员: 安吉丽娜·朱莉 / 丹尼尔·华斯顿 / 杰文·戴维斯 / 克里斯托弗·多尔顿 / 莫西斯·阿里
  5. =======================
  6. 电影名: 致命女人
  7. 评分: 6.4
  8. 导演: 郭帆
  9. 演员: 蔡鹭 / 谭卓 / 宋洋 / 曹炳琨 / 张乃歌
  10. =======================
  11. 电影名: 不管怎样
  12. 评分: 8.1
  13. 导演: 蒂姆·斯卡利
  14. 演员: 安德鲁·加菲尔德 / 蕾蒂西亚·赖特 / Jason Isaacs / Ruth Negga
  15. =======================
  16. 电影名: 杀释Γ镖2
  17. 评分: 7.0
  18. 导演: 帕特里克·休斯
  19. 演员: 瑞恩·雷诺兹 / 山姆·杰克逊 / 塞缪尔·杰克逊 / 格温妮斯·帕特洛
  20. =======================
  21. ...
复制代码
3. 在小法式中展现数据

上面我们已经获得了豆瓣电影正在上映的电影信息,并将其输出到控制台上。现在我们需要在小法式中展现这些数据。
这里我利用了uni-app框架来开辟小法式界面。具体的实现可以分为以下几步:

  • 在page中增加一个list组件;
  • 在js中经过异步请求获得数据,并经过setData方式传递到wxml中;
  • 在wxml中展现数据。
下面是完整的js代码:
  1. export default {
  2.   data() {
  3.     return {
  4.       movieList: [],
  5.     }
  6.   },
  7.   onLoad() {
  8.     wx.showLoading({
  9.       title: '加载中...',
  10.     })
  11.     wx.request({
  12.       url: 'https://douban.uieee.com/v2/movie/in_theaters',
  13.       header: {
  14.         'content-type': 'json'
  15.       },
  16.       success: res => {
  17.         wx.hideLoading()
  18.         console.log(res.data.subjects)
  19.         this.setData({
  20.           movieList: res.data.subjects
  21.         })
  22.       }
  23.     })
  24.   }
  25. }
复制代码
上面的代码中,我们首先界说了一个movieList变量,用于存储获得到的电影信息。然后在onLoad函数中,利用wx.request方式发送请求,获得豆瓣电影正在上映的电影信息。在请求成功后,经过setData方式将数据传递到wxml中。
下面是完整的wxml代码:
  1. <view class="container">
  2.   <view class="header">正在上映</view>
  3.   <scroll-view class="list" scroll-y="true">
  4.     <view class="movie" wx:for="{{movieList}}">
  5.       <image class="poster" src="{{item.images.large}}" mode="aspectFill"></image>
  6.       <view class="info">
  7.         <view class="title">{{item.title}}</view>
  8.         <view class="score">{{item.rating.average}}</view>
  9.         <view class="director">导演:{{item.directors[0].name}}</view>
  10.         <view class="actor">演员:{{item.casts[0].name}}/{{item.casts[1].name}}</view>
  11.       </view>
  12.     </view>
  13.   </scroll-view>
  14. </view>
复制代码
在上面的代码中,我们展现了电影的封面图、电影名、评分、导演、演员等信息。经过wx:for指令,可以将数据衬着到wxml中。
结论

经过以上的案例,我们可以看出,小法式爬虫是一种很是方便的数据获得方式。在开辟进程中,我们需要遵照一些法令律例,确保爬虫的正当性。除此之外,添闻数据公司可以为您供给完整的定制爬虫营业,可以使得数据获得的进程更加便利。
小法式爬虫
回复

使用道具 举报

江苏小鱼儿 2023-3-20 10:52:13 显示全部楼层
小法式云开辟之--微信公众号文章收集篇

       相信很多小伙伴都有想过做一个属于自己的小法式,又苦于没有办事器以及备案域名、网站ssl证书等,微信小法式作为前端后端就有很多了诸如Spring百口桶等小法式能接收到后端返回的值需要小法式内增加正当域名(域名备案和https协议)
           这里间接进入讲授
公众号中有专门的接口(也有专门的文档) 那末若何收集小法式的文章来做到为我所用呢?
第一步: 获得access_token

经过文档可以看出 想要获得这个access_token需要以下三个参数


有没有能抓取微信小法式的收集器或爬虫工具?-1.jpg

其中grant_type的值为client_credential用于获得access_token
appid和secret在公众号内可以找到


有没有能抓取微信小法式的收集器或爬虫工具?-2.jpg

完成以上设置以后便可以收集文章了,
我们可以手动拜候获得token大概postman等


有没有能抓取微信小法式的收集器或爬虫工具?-3.jpg

有了token以后收集文章就很方便了 下面起头操纵
从官方文档中可以看到供给的接口还是挺多的


有没有能抓取微信小法式的收集器或爬虫工具?-4.jpg

这里拿草稿箱做树模吧 其他的像图文、视频等素材的收集方式都是一样的


有没有能抓取微信小法式的收集器或爬虫工具?-5.jpg

第一个token我们已经有了接下来就是offset和count了 最初一个参数可以不要
获得文章数据

获得到素材以后 打印成果


有没有能抓取微信小法式的收集器或爬虫工具?-6.jpg

说明我的草稿箱里有三条数据 确切只要三条

有没有能抓取微信小法式的收集器或爬虫工具?-7.jpg

文章数据的处置

我们需要把自己需要的参数获得然后增加进数据库
留意这里有个题目就是假如这个文章已经收集过了那末我们就跳过,假如全数数据都存在那末打印 文章已经存在
最初就是把数据库没有的数据放入到数据库中
以下是测试成果


有没有能抓取微信小法式的收集器或爬虫工具?-8.jpg

假如全数数据都存在


有没有能抓取微信小法式的收集器或爬虫工具?-9.jpg

博客小法式:万神资本小栈  
以上就是一切内容了  更多出色内容请关注我~
回复

使用道具 举报

lovesbaobao 2023-3-20 10:52:44 显示全部楼层
前言

数据不再是以间接的网页形式展现,各类微信小法式或APP成为了新的数据源。之前写爬虫法式,都是折腾电脑网页,此次第一次爬取手机端数据,特此记录以备忘。
本主要爬取数据的工具是:西安市市民一码通小法式——停车引诱页面。


有没有能抓取微信小法式的收集器或爬虫工具?-1.jpg

一码通页面

按照交换逻辑,手机端信息不外是将网页信息以手机UI形式展现,其运转逻辑和PC版网页没有较大区分。但在现实操纵时发现,这玩意与PC网页分歧的是,手机端没法像PC端可以间接按F12进入开辟者调试页面,那末就得利用工具先把手机请求地址找出来。
Charles简介

“Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).”——————官网先容
翻译过来就是:它是用来测试收集请求响应交换的监控器。


有没有能抓取微信小法式的收集器或爬虫工具?-2.jpg

Charles页面

抓包环节

初步判定

在手机上检察时,发现下拉该页面时页面会弹出请求网址,差点被这个地址给误导了。


有没有能抓取微信小法式的收集器或爬虫工具?-3.jpg

电脑端拜候这个地址,发现该页面实在是建大静态交通研讨院做的停车治理平台,不外得登陆才能进入,对于普通拜候者来说,这个请求地址是没有什么用的。
到此为止,大要肯定了网址的组成结构应当是:http://zimoiot.com/+XXXX


有没有能抓取微信小法式的收集器或爬虫工具?-4.jpg

Charles监测
Charles相关的设置与说明在此不外多赘述,主如果要将手机和电脑连结在同一收集内,在PC端安装证书后,还要在手机上一样安装证书,并设备信赖权限和代理。


有没有能抓取微信小法式的收集器或爬虫工具?-5.jpg

有没有能抓取微信小法式的收集器或爬虫工具?-6.jpg

有没有能抓取微信小法式的收集器或爬虫工具?-7.jpg

在设置好相关参数和参数后,操纵手机端小法式时即可在Charles上看到相关的请求记录。


有没有能抓取微信小法式的收集器或爬虫工具?-8.jpg

肯定地址

经过手机点击小法式中的四周停车场列表,翻页检察可以发现是静态网页。按照Charles监测显现,请求方式为POST,请求网址应为https://jianda.zimoiot.com/app/getParkingListGetByDistance,请求data应为地点地经纬度、查找间隔、页面显现数目等参数,默以为:“"page": 1, "limit": 10, "userid": "29", "version": "1.0.0", "mchid": "157", "clienttype": "4"”,可将页面显现信息数目和查找范围都设备为99999,意为不限制间隔和数目。
Python库
  1. import pandas as pd
  2. import requests
  3. import re
  4. import json
  5. from pandas import json_normalize
复制代码
留意事项

经过屡次测试发现,需要留意以下两点:

  • 利用request倡议请求,需要在headers中增加上参数,以便模拟为移动端拜候。
  • 在传入data时,应利用json.dumps() 函数将 Python 工具转换为 json 字符串,否则会报错。具体缘由详见此。
  1. headers =  {
  2. 'Host':'jianda.zimoiot.com',
  3. 'Content-Type':'application/json',
  4. 'Origin':'https://jianda.zimoiot.com',
  5. 'Accept-Language':'zh-CN,zh-Hans;q=0.9',
  6. 'Accept-Encoding':'gzip, deflate, br',
  7. 'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 15_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.18(0x18001236) NetType/WIFI Language/zh_CN miniProgram/wxec4343871c957260',         
  8. 'Referer':'https://jianda.zimoiot.com/big-data/h5/pages/parking/list?lng=XXXXXXXX&lat=XXXXXXXXXX'
  9. }         
复制代码
网页返回


有没有能抓取微信小法式的收集器或爬虫工具?-9.jpg

有没有能抓取微信小法式的收集器或爬虫工具?-10.jpg

响应成果是较为完整的json结构,为了将成果保存为DataFrame,进而快速存储为Excel文件,这里可经过pandas库0.25.0版本以上自带的json_normalize转换json。
  1. pd.json_normalize(json.loads(res.content)['data']['list'])
复制代码
终极成果

共获得全市4158个停车场信息,包括地点地区、经纬度、泊位数、价格等信息。其中,已利用停车位数目与收集时候有关,应当是实时变化的。

有没有能抓取微信小法式的收集器或爬虫工具?-11.jpg

声明

测试纯属科研用处
回复

使用道具 举报

oats 2023-3-20 10:53:35 显示全部楼层
叨教,你找到进修资本了吗
回复

使用道具 举报

norris_vip 2023-3-20 10:54:07 显示全部楼层
大胸弟莫焦急,我来跟你简单说一下微信小法式若何收集
首先类似火车头八爪鱼那种具体的工具就不要想了,
其次,兄弟你可以试试fiddler大概Charles抓包,弄好证书,分分钟抓到接口。
以后假如抓不到的话可以找个安卓手机root掉,然后找出来具体的微信小法式包,解一下也挺方便
最初,看看小法式开辟文档,爬虫真的没门坎。
回复

使用道具 举报

说点什么

您需要登录后才可以回帖 登录 | 立即注册
HOT • 推荐

神回复

站长姓名:王殿武 杭州共生网络科技 创始人 云裂变新零售系统 创始人 飞商人脉对接平台 创始人 同城交友聚会平台 创始人 生活经验分享社区 创始人 合作微信:15924191378(注明来意)