鱼C论坛

 找回密码
 立即注册
查看: 1792|回复: 5

[已解决]包含“显示XX条记录”选项的搜索结果网页数据获取

[复制链接]
发表于 2017-9-18 14:34:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 瓦尔登湖的海水 于 2017-9-19 20:49 编辑

最近在使用python3.5进行爬虫时遇到一个难点:
URL = ‘https://clinicaltrials.gov/ct2/r ... cv_e=06%2F30%2F2017
其实是一个搜索结果网页,搜索结果有105条,但是每页最多显示100行。我尝试自动获取下一页的链接,但是没有成功,手动点选下一页时发现网址并没有改变,似乎网页引用了某个数据表,但是直接爬取时无法爬取到原始数据表。
网页HTML代码中有:
var table;
var FuncReAlign;
var GotoRow;

$(document).ready(function() {
            table = $('#theDataTable').DataTable({
                        …………
语句


由于相关经验较少,望大神不吝赐教,如何爬取类似搜索结果网页的所有搜索结果数据。
谢谢



最后在三楼的指点下完成了。
想向和我一样的爬虫初学这简单说一下,这种网页是ajax技术下的的网页,简单来说翻页时网址并没有改变,只有部分网页更新。在处理这样的网页时我使用了data = urllib.parse.urlencode(a).encode('utf-8')编辑‘FormData’部分,也就是三楼所提的那部分,最终实现了‘翻页’。

真是 learning in doing
最佳答案
2017-9-18 14:58:50
你抓一下包就可以看到他获取数据的方式了,顺便告诉你,网站post数据到https://clinicaltrials.gov/ct2/r ... FRYqSR4j-2oaq2oaq2t这个地址,post的数据是draw:1
columns[0][data]:0
columns[0][name]:
columns[0][searchable]:true
columns[0][orderable]:false
columns[0][search][value]:
columns[0][search][regex]:false
columns[1][data]:1
columns[1][name]:
columns[1][searchable]:false
columns[1][orderable]:false
columns[1][search][value]:
columns[1][search][regex]:false
columns[2][data]:2
columns[2][name]:
columns[2][searchable]:true
columns[2][orderable]:false
columns[2][search][value]:
columns[2][search][regex]:false
columns[3][data]:3
columns[3][name]:
columns[3][searchable]:true
columns[3][orderable]:false
columns[3][search][value]:
columns[3][search][regex]:false
columns[4][data]:4
columns[4][name]:
columns[4][searchable]:true
columns[4][orderable]:false
columns[4][search][value]:
columns[4][search][regex]:false
columns[5][data]:5
columns[5][name]:
columns[5][searchable]:true
columns[5][orderable]:false
columns[5][search][value]:
columns[5][search][regex]:false
columns[6][data]:6
columns[6][name]:
columns[6][searchable]:true
columns[6][orderable]:false
columns[6][search][value]:
columns[6][search][regex]:false
columns[7][data]:7
columns[7][name]:
columns[7][searchable]:true
columns[7][orderable]:false
columns[7][search][value]:
columns[7][search][regex]:false
columns[8][data]:8
columns[8][name]:
columns[8][searchable]:true
columns[8][orderable]:false
columns[8][search][value]:
columns[8][search][regex]:false
columns[9][data]:9
columns[9][name]:
columns[9][searchable]:true
columns[9][orderable]:false
columns[9][search][value]:
columns[9][search][regex]:false
columns[10][data]:10
columns[10][name]:
columns[10][searchable]:true
columns[10][orderable]:false
columns[10][search][value]:
columns[10][search][regex]:false
columns[11][data]:11
columns[11][name]:
columns[11][searchable]:true
columns[11][orderable]:false
columns[11][search][value]:
columns[11][search][regex]:false
columns[12][data]:12
columns[12][name]:
columns[12][searchable]:true
columns[12][orderable]:false
columns[12][search][value]:
columns[12][search][regex]:false
columns[13][data]:13
columns[13][name]:
columns[13][searchable]:true
columns[13][orderable]:false
columns[13][search][value]:
columns[13][search][regex]:false
columns[14][data]:14
columns[14][name]:
columns[14][searchable]:true
columns[14][orderable]:false
columns[14][search][value]:
columns[14][search][regex]:false
columns[15][data]:15
columns[15][name]:
columns[15][searchable]:true
columns[15][orderable]:false
columns[15][search][value]:
columns[15][search][regex]:false
columns[16][data]:16
columns[16][name]:
columns[16][searchable]:true
columns[16][orderable]:false
columns[16][search][value]:
columns[16][search][regex]:false
columns[17][data]:17
columns[17][name]:
columns[17][searchable]:true
columns[17][orderable]:false
columns[17][search][value]:
columns[17][search][regex]:false
columns[18][data]:18
columns[18][name]:
columns[18][searchable]:true
columns[18][orderable]:false
columns[18][search][value]:
columns[18][search][regex]:false
columns[19][data]:19
columns[19][name]:
columns[19][searchable]:true
columns[19][orderable]:false
columns[19][search][value]:
columns[19][search][regex]:false
columns[20][data]:20
columns[20][name]:
columns[20][searchable]:true
columns[20][orderable]:false
columns[20][search][value]:
columns[20][search][regex]:false
columns[21][data]:21
columns[21][name]:
columns[21][searchable]:true
columns[21][orderable]:false
columns[21][search][value]:
columns[21][search][regex]:false
columns[22][data]:22
columns[22][name]:
columns[22][searchable]:true
columns[22][orderable]:false
columns[22][search][value]:
columns[22][search][regex]:false
columns[23][data]:23
columns[23][name]:
columns[23][searchable]:true
columns[23][orderable]:false
columns[23][search][value]:
columns[23][search][regex]:false
columns[24][data]:24
columns[24][name]:
columns[24][searchable]:true
columns[24][orderable]:false
columns[24][search][value]:
columns[24][search][regex]:false
start:0
length:100
search[value]:
search[regex]:false

关键数据就是start:0
如果start:100,那就是100以后的数据了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-9-18 14:49:35 | 显示全部楼层
解决了,原始表格中引用部分声明下有一个链接,就是DataTable的位置。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-18 14:58:50 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +5 鱼币

你抓一下包就可以看到他获取数据的方式了,顺便告诉你,网站post数据到https://clinicaltrials.gov/ct2/r ... FRYqSR4j-2oaq2oaq2t这个地址,post的数据是draw:1
columns[0][data]:0
columns[0][name]:
columns[0][searchable]:true
columns[0][orderable]:false
columns[0][search][value]:
columns[0][search][regex]:false
columns[1][data]:1
columns[1][name]:
columns[1][searchable]:false
columns[1][orderable]:false
columns[1][search][value]:
columns[1][search][regex]:false
columns[2][data]:2
columns[2][name]:
columns[2][searchable]:true
columns[2][orderable]:false
columns[2][search][value]:
columns[2][search][regex]:false
columns[3][data]:3
columns[3][name]:
columns[3][searchable]:true
columns[3][orderable]:false
columns[3][search][value]:
columns[3][search][regex]:false
columns[4][data]:4
columns[4][name]:
columns[4][searchable]:true
columns[4][orderable]:false
columns[4][search][value]:
columns[4][search][regex]:false
columns[5][data]:5
columns[5][name]:
columns[5][searchable]:true
columns[5][orderable]:false
columns[5][search][value]:
columns[5][search][regex]:false
columns[6][data]:6
columns[6][name]:
columns[6][searchable]:true
columns[6][orderable]:false
columns[6][search][value]:
columns[6][search][regex]:false
columns[7][data]:7
columns[7][name]:
columns[7][searchable]:true
columns[7][orderable]:false
columns[7][search][value]:
columns[7][search][regex]:false
columns[8][data]:8
columns[8][name]:
columns[8][searchable]:true
columns[8][orderable]:false
columns[8][search][value]:
columns[8][search][regex]:false
columns[9][data]:9
columns[9][name]:
columns[9][searchable]:true
columns[9][orderable]:false
columns[9][search][value]:
columns[9][search][regex]:false
columns[10][data]:10
columns[10][name]:
columns[10][searchable]:true
columns[10][orderable]:false
columns[10][search][value]:
columns[10][search][regex]:false
columns[11][data]:11
columns[11][name]:
columns[11][searchable]:true
columns[11][orderable]:false
columns[11][search][value]:
columns[11][search][regex]:false
columns[12][data]:12
columns[12][name]:
columns[12][searchable]:true
columns[12][orderable]:false
columns[12][search][value]:
columns[12][search][regex]:false
columns[13][data]:13
columns[13][name]:
columns[13][searchable]:true
columns[13][orderable]:false
columns[13][search][value]:
columns[13][search][regex]:false
columns[14][data]:14
columns[14][name]:
columns[14][searchable]:true
columns[14][orderable]:false
columns[14][search][value]:
columns[14][search][regex]:false
columns[15][data]:15
columns[15][name]:
columns[15][searchable]:true
columns[15][orderable]:false
columns[15][search][value]:
columns[15][search][regex]:false
columns[16][data]:16
columns[16][name]:
columns[16][searchable]:true
columns[16][orderable]:false
columns[16][search][value]:
columns[16][search][regex]:false
columns[17][data]:17
columns[17][name]:
columns[17][searchable]:true
columns[17][orderable]:false
columns[17][search][value]:
columns[17][search][regex]:false
columns[18][data]:18
columns[18][name]:
columns[18][searchable]:true
columns[18][orderable]:false
columns[18][search][value]:
columns[18][search][regex]:false
columns[19][data]:19
columns[19][name]:
columns[19][searchable]:true
columns[19][orderable]:false
columns[19][search][value]:
columns[19][search][regex]:false
columns[20][data]:20
columns[20][name]:
columns[20][searchable]:true
columns[20][orderable]:false
columns[20][search][value]:
columns[20][search][regex]:false
columns[21][data]:21
columns[21][name]:
columns[21][searchable]:true
columns[21][orderable]:false
columns[21][search][value]:
columns[21][search][regex]:false
columns[22][data]:22
columns[22][name]:
columns[22][searchable]:true
columns[22][orderable]:false
columns[22][search][value]:
columns[22][search][regex]:false
columns[23][data]:23
columns[23][name]:
columns[23][searchable]:true
columns[23][orderable]:false
columns[23][search][value]:
columns[23][search][regex]:false
columns[24][data]:24
columns[24][name]:
columns[24][searchable]:true
columns[24][orderable]:false
columns[24][search][value]:
columns[24][search][regex]:false
start:0
length:100
search[value]:
search[regex]:false

关键数据就是start:0
如果start:100,那就是100以后的数据了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-18 17:53:35 | 显示全部楼层

回帖奖励 +5 鱼币

谢谢楼主大大的分享
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-18 18:05:40 | 显示全部楼层

回帖奖励 +5 鱼币

转成已经解决
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-18 20:23:10 | 显示全部楼层
yaoyaozhe 发表于 2017-9-18 14:58
你抓一下包就可以看到他获取数据的方式了,顺便告诉你,网站post数据到https://clinicaltrials.gov/ct2/res ...

还有就是利用python如何获取POST到的那个地址中100条记录后的数据呢?谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-2 12:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表