xxx6805 发表于 2021-4-25 15:00

python学习求助

请哪位大神帮忙解惑,以下这段代码,想抓取第4页的表格,但只能抓取第一页,不知问题出在哪儿?非常感谢!{:1_893:}{:1_893:}{:1_893:}
import requests
from bs4 import BeautifulSoup

def get_data(url):   

    formdata = {      
      "examId":5461,
      "enrollBatch":"",
      "province":"",
      "schoolName":"",
      "examId2":5461,
      "enrollBatch2":"",
      "specialtyName":"",
      "kskmgx":0,
      "optionType":1,
      "queryType":1,
      "pageFalg":"true",
      "pageSize":"50",
      "pageNo":4
      }   
   
    r = requests.post(url,data = formdata)   
    soup = BeautifulSoup(r.text,'lxml')   
    print(soup)

if __name__ == "__main__":

    url = 'http://query.bjeea.cn/queryService/rest/plan/115'

    get_data(url)

gentlespider 发表于 2021-4-25 15:20

我看的post请求参数跟你这个不一样啊,你试试我的 。翻页也是字符串
import requests
from bs4 import BeautifulSoup


def get_data(url):
    formdata = {
    'pageFlag':'true',
    'token':'1619335009882',
    'pageSize':'50',
    'pageNo':'4',
    }
    r = requests.post(url, data=formdata)
    soup = BeautifulSoup(r.text, 'lxml')
    print(soup)


if __name__ == "__main__":
    url = 'http://query.bjeea.cn/queryService/rest/plan/115'
    get_data(url)

xxx6805 发表于 2021-4-25 15:32

gentlespider 发表于 2021-4-25 15:20
我看的post请求参数跟你这个不一样啊,你试试我的 。翻页也是字符串
import req ...

非常感谢!怪我没有说清楚,先在表头选择全部,查询后,formdata的参数就是我刚才的那样,最好是两者能关联起来,我不知怎么做,大神,能不能再帮看一下!!!

fanvalen 发表于 2021-4-25 16:16

你没有吧headers 和data分开所以失败
headers={POST /queryService/rest/plan/115 HTTP/1.1
Host: query.bjeea.cn
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 54
Origin: http://query.bjeea.cn
Connection: keep-alive
Referer: http://query.bjeea.cn/queryService/rest/plan/115
Cookie: JSESSIONID1=PEAIDhDQrk_yM9u8ZqBRcMdDJwbP9Lkq6CJi32MgNhqW75HpAHll!55154302; insert_cookie=22478270
Upgrade-Insecure-Requests: 1}

data={pageFlag=true&token=1619338218857&pageSize=50&pageNo=4}

polly521 发表于 2021-4-25 16:18

http://query.bjeea.cn/queryService/rest/plan/115?pageFlag=true&token=1619338392979&pageSize=50&pageNo=5

最后一个pageNo=5就是页码了,根据需要来调整吧

gentlespider 发表于 2021-4-25 16:18

xxx6805 发表于 2021-4-25 15:32
非常感谢!怪我没有说清楚,先在表头选择全部,查询后,formdata的参数就是我刚才的那样,最好是两者能关 ...

加个cookie就好了

xxx6805 发表于 2021-4-25 16:32

polly521 发表于 2021-4-25 16:18
http://query.bjeea.cn/queryService/rest/plan/115?pageFlag=true&token=1619338392979&pageSize=50&pageN ...

大神,调整页码没有问题,但是录取批次只有“本科普通批”,我是要全部的。我也是初学,您说加个cookie就好了,我都不知道怎么加,惭愧!还请大神指点一二,谢谢!

xxx6805 发表于 2021-4-25 16:33

fanvalen 发表于 2021-4-25 16:16
你没有吧headers 和data分开所以失败
headers={POST /queryService/rest/plan/115 HTTP/1.1
Host: query. ...

非常感谢!我先试一下,如有问题,再来请教!

fanvalen 发表于 2021-4-25 16:35

xxx6805 发表于 2021-4-25 16:33
非常感谢!我先试一下,如有问题,再来请教!

都要做成字典形式我只是复制给你个参考

polly521 发表于 2021-4-25 16:59

xxx6805 发表于 2021-4-25 16:32
大神,调整页码没有问题,但是录取批次只有“本科普通批”,我是要全部的。我也是初学,您说加个cookie就 ...

http://query.bjeea.cn/queryService/rest/plan/115?examId=5461&kskmgx=0&optionType=1&queryType=1&enrollBatch=本科提前批

enrollBatch 这个变量来控制类型,但如果要全部,把enrollBatch这个变量加上,不赋值即可
页: [1] 2
查看完整版本: python学习求助