2 qq 31566901 qq_31566901 于 2016.03.18 16:50 提问

使用Python抓取下一页网页数据

怎么抓取一个无论怎么跳转其url都不变的网页?通过Requests和BeautifulSoup能实现吗?

http://www.szairport.com/frontapp/HbxxServlet?iscookie=C

另外其下一页的跳转指令是js写的,我该怎么通过这条指令跳转下一页,命令如下:

 [<a href="javascript:void(0);" onclick="page.moveNext()">下一页</a>]

另附上我修改的代码;

import requests
import re
import BeautifulSoup
import json
a={"start":150,"limit":20}
r=requests.post("http://www.szairport.com/frontapp/HbxxServlet",data=json.dumps(a))
soup=BeautifulSoup.BeautifulSoup(r.text)
print soup

3个回答

bealing
bealing   Rxr 2016.03.18 16:59

可以不用获取js的,通过form data,也可以获取指定页的数据
图片说明

qq_31566901
qq_31566901 回复Bealing: 下面是我写的代码,麻烦看下,是不是我哪出问题了?
一年多之前 回复
qq_31566901
qq_31566901 回复Bealing: 下面是我写的代码,麻烦看下,是不是我哪出问题了?
一年多之前 回复
bealing
bealing 应该不会吧,你form中的参数对吗?start 和limit 是获取第几页第几页的关键值
一年多之前 回复
qq_31566901
qq_31566901 我尝试了下好 像并不能跳转,会显示没有航班记录
一年多之前 回复
qq_31566901
qq_31566901   2016.03.18 17:07

贴上我尝试的代码,新手见谅

 import requests
import re
import BeautifulSoup
a={"Start":"150"}
r=requests.post("http://www.szairport.com/frontapp/HbxxServlet",data=a)
soup=BeautifulSoup.BeautifulSoup(r.text)
print soup

qq_31566901
qq_31566901 回复Bealing: 不行,还是显示没有航班记录
一年多之前 回复
bealing
bealing 建议,a={"start":150,"limit":20},需要注意大小写和数据类型
一年多之前 回复
bealing
bealing 传的参数不对,data应该是json格式,导入json模块 data=json.dumps(a)
一年多之前 回复
oyljerry
oyljerry   Ds   Rxr 2016.03.18 17:53

你可以先分析它跳转到下一页的URL格式,比如通过参数等,然后自己来构造对应的参数。发送请求

qq_31566901
qq_31566901 它跳转到下页的URL我尝试抓取了下,显示没航班记录,请问下是我data的参数没设置好吗?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!