最近自己业余瞎捣鼓,需要解析几个网页提取公开的数据,请大佬指点。如果答案被采纳,我请你喝 2 杯奶茶 😆 ( 50 人民币)
在以下 5 个网站分别输入驾照号码,提取返回的查询信息。可以用 js 或者 ruby(on rails)实现
目标网站 1:
https://www.service.transport.qld.gov.au/checkrego/application/VehicleSearch.xhtml 输入驾照号码样例:6666
目标网站 2:
https://www.vicroads.vic.gov.au/registration/buy-sell-or-transfer-a-vehicle/check-vehicle-registration/vehicle-registration-enquiry (只需要默认选择的 car/truck, Registration number 即可) 输入驾照号码样例:6666
目标网站 3:
https://online.transport.wa.gov.au/webExternal/registration/?0 输入驾照号码样例:6666
目标网站 4:
https://rego.act.gov.au/regosoawicket/public/reg/FindRegistrationPage?3 输入驾照号码样例:6666
目标网站 5:
https://www.transport.tas.gov.au/MRSWebInterface/public/regoLookup/registrationLookup.jsf 输入驾照号码样例:6666
1
oxromantic 2022-10-10 12:32:13 +08:00
面向监狱开发 --- 哦,gov.au 啊,告辞
|
2
jeesk 2022-10-10 12:34:49 +08:00
@oxromantic 怕个屁, 人在墙内。
|
3
mlhadoop 2022-10-10 12:39:39 +08:00
怎么每个网站的数据都不一样的?
|
5
fulvaz 2022-10-10 12:55:26 +08:00
两杯奶茶是友情价,找朋友吧~
|
6
ncepuzs 2022-10-10 13:26:09 +08:00
赞同楼上,这价格你还是找朋友帮忙吧……
|
8
pksyqcj 2022-10-10 15:40:27 +08:00
这个主要是针对几个站分析如何请求的,拿到 html 就可以用 puppeteer 轻松解析 html 了
|
9
loopq 2022-10-10 15:47:36 +08:00
用 Python 干过这种,拿到 html 用 beautifulSoup 解析就好了,没什么难的吧,自己可以看看,默认 OP 是程序员啊
|
10
PaddyPang 2022-10-10 16:03:23 +08:00
用 Python 吧 看看文档半个小时就学会了
|
11
0x666666 2022-10-10 16:09:14 +08:00
用 selenium 可以实现
|
12
tonywangcn 2022-10-10 16:52:01 +08:00 1
提供一个分析思路
1. 输入驾照号码后,点击 search ,network 显示的第一条请求便是,如下图所示。 []( https://imgur.com/rVsPhCW) 2. 点击 headers ,发现第一条请求通过 post 提交参数,得到一个 302 重定向,看 Response Headers 的 location 部分,即为第二条请求。 []( https://imgur.com/4aoZRYk) 3. 点击第二条 request 的 response ,搜索 左侧页面中出现的 Registration number ,即 515DF3 ,即可判断出重定向中的请求结果为目标页面 []( https://imgur.com/21KFxWc) 4. 构造请求,确认上述猜测是否正确,如下图所示右键第一条请求 选择 Copy as cURL []( https://imgur.com/Ko0KZFa) 5. 在 Postman 中通过 import -> Raw text -> continue 导入,点击 Send (或直接将 cURL 命令粘贴到命令行工具回车),在返回的 Body 中搜索 Registration number(515DF3) 即可发现如下图中的结果。 []( https://imgur.com/T5yympW) 整个操作过程无需开启 Javascript 即可实现,换言之,无需任何 headless browser 即可实现 OP 的需求。 下面为具体的实现步骤: 1. 请求 `https://www.service.transport.qld.gov.au/checkrego/application/VehicleSearch.xhtml` 2. Redirect 到 https://www.service.transport.qld.gov.au/checkrego/application/VehicleSearch.xhtml?dswid=7019 3. 拿到 2 中的 cookie ,dswid ,以及 response 中的 `javax.faces.ViewState` 4. 将上述拿到的 cookie ,dswid ,以及 javax.faces.ViewState 将下面的值进行相应替换,请求,即可获取到目标数据 5. 剩下的就是通过 css selector 等技术解析 html 数据了 ``` curl --location --request POST 'https://www.service.transport.qld.gov.au/checkrego/application/VehicleSearch.xhtml?dswid=-4097' \ --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \ --header 'Accept-Language: en-CA,en;q=0.9,fr-CA;q=0.8,fr;q=0.7,zh-TW;q=0.6,zh-CN;q=0.5,zh;q=0.4,en-US;q=0.3,ja-JP;q=0.2,ja;q=0.1,en-GB;q=0.1' \ --header 'Cache-Control: no-cache' \ --header 'Connection: keep-alive' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --header 'Cookie: oam.Flash.REDIRECT=true; JSESSIONID=0001YXWHRoRmC2n_Ur_iDbDJ5GJ:1c05gfnja; LPVID=Q4NmYxMmJhYTc2NmJiZWVj; LPSID-36317183=3ZTOIJh_TpueQjQE9EnFdQ; ADRUM_BTa=R:94|g:37c82fe9-373a-4a38-b0a8-29a58de27da5|n:tmr-prod_2381add0-3320-4317-90dd-93ddbdaa5c0d; SameSite=None; ADRUM_BT1=R:94|i:124181|e:5; ADRUM_BT1=R:94|i:124181|e:4; ADRUM_BTa=R:94|g:43df3ec2-861c-4365-9418-d933ea606284|n:tmr-prod_2381add0-3320-4317-90dd-93ddbdaa5c0d; JSESSIONID=0001EMXzKZ1B4mwI7r7wzhcGF3L:1c05gfnja; SameSite=None' \ --header 'DNT: 1' \ --header 'Origin: https://www.service.transport.qld.gov.au' \ --header 'Pragma: no-cache' \ --header 'Referer: https://www.service.transport.qld.gov.au/checkrego/application/VehicleSearch.xhtml?dswid=-4097' \ --header 'Sec-Fetch-Dest: document' \ --header 'Sec-Fetch-Mode: navigate' \ --header 'Sec-Fetch-Site: same-origin' \ --header 'Sec-Fetch-User: ?1' \ --header 'Upgrade-Insecure-Requests: 1' \ --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36' \ --data-urlencode 'vehicleSearchForm:plateNumber=6666' \ --data-urlencode 'vehicleSearchForm:referenceId=' \ --data-urlencode 'vehicleSearchForm:confirmButton=' \ --data-urlencode 'vehicleSearchForm_SUBMIT=1' \ --data-urlencode 'javax.faces.ViewState=97L3Xac9P5KSdnHwMlK7fmBuOMA9xhe7oQT/dF6FrTQ5Xa+yhup62pPrTc8ozfKyJ9mCORg8uqJlyWeXaifmBg==' \ --data-urlencode 'javax.faces.ClientWindow=-4097' ``` |
13
catsky OP @tonywangcn 多谢大佬指点 请你喝一杯奶茶 麻烦告知接收地址
|
14
tonywangcn 2022-10-11 13:06:42 +08:00
@catsky dG9ueXdhbmcuZGF0YUBnbWFpbC5jb20= base64 通过这个联系
|
15
jswxg 2022-10-11 14:14:56 +08:00
楼主问题解决了吗
|