찾다

 >  Q&A  >  본문

python - 如何爬取带有日期选择的ajax网站?

需要爬取三峡水库的实时水情数据,可以在网页中选择日期显示水情信息,如果一天天选择再复制数据发现很是耗时,我现在需要将下图中三峡水利枢纽2014年-2016年每天的数据爬下来。

网址如下:
http://www.ctgpc.com.cn/sxjt/...

通过浏览器自带的检查工具,右键检查元素,查看 network,查看调用的 ajax API 地址:初步分析后发现是通过ajax调用了以下网址,并用POST传递了一个日期数据,例如今天2017-02-15给该网址:
http://www.ctgpc.com.cn/eport...

Header如下:

Response如下:

之前有搜索到类似的问题:https://segmentfault.com/q/10...
但是按照回答并没能解决我的疑惑,因此在这里求助各位前辈,麻烦大家了

伊谢尔伦伊谢尔伦2781일 전1249

모든 응답(4)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:21:32

    요청 라이브러리를 사용하여 게시물 제출을 시뮬레이션할 수 있습니다. 브라우저 검사 도구에서 전달된 매개변수가 time:2017-02-07임을 확인할 수 있습니다. 데이터={"시간": 2017-02-07과 같은 날짜}를 정의합니다. 그런 다음 날짜를 반복하고 날짜에 하루를 추가하는 루프를 작성할 수 있습니다. 그럼 그냥 r = requests.post("url", data=data, header=****). 데이터를 꺼내 데이터베이스에 저장합니다. 각 루프가 너무 느린 경우 gevent 코루틴 라이브러리를 추가하여 프로세스 속도를 높일 수 있습니다. 2년간의 데이터를 캡처하려면 365*2번 루프하면 괜찮습니다

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:21:32

    데이터가 포함된 요청을 보셨는데, 궁금한 점이 있으신가요?

    회신하다
    0
  • 迷茫

    迷茫2017-04-18 10:21:32

    패킷을 캡처한 후 게시 또는 가져오기 시뮬레이션
    다음 내용을 보세요
    Python 크롤러 연관 단어 비디오 및 코드
    https://zhuanlan.zhihu.com/p/...

    황 형제에게서 프록시 IP 및 확인을 캡처하는 Python 크롤러를 알아보세요.
    https://zhuanlan.zhihu.com/p/...
    황 형제에게 Python 크롤러 크롤러 IP 배우기
    https://zhuanlan.zhihu.com/p/...

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 10:21:32

    이미 Json 문자열이 있으므로 데이터를 얻는 것이 더 쉽습니다

    회신하다
    0
  • 취소회신하다