자바 스크립트 요소가있는 페이지 용 웹 스크래퍼를 작성합니까?

미끼 24601

따라서이 웹 사이트에서 데이터를 수집하려면 Python 웹 스크래퍼를 작성해야합니다. https://online.portalberni.ca/WebApps/PIP/Pages/Search.aspx?templateName=permit%20reporting

보시다시피 날짜 필드에 수동으로 텍스트를 입력 할 수 없습니다. 이런 페이지에 대한 스크립트를 작성할 때 일반적으로 수행하는 작업입니다. 스크립트는 헤드리스 우분투 서버에서 매일 실행됩니다. 스크립트가 실행되는 날까지의 7 일 동안 날짜 범위를 선택할 수 있어야합니다. 다시 말하지만 일반적으로 텍스트를 입력하면 쉽게 할 수 있지만 여기서는 옵션이 아니라고 생각합니다. 이와 같은 자바 스크립트 요소로 이것을 수행하는 방법에 대한 아이디어가 있습니까?

골키퍼 1998

이렇게하면 다음 페이지로 이동했습니다 (유사한 작업을 수행 할 수있는 다른 양식이 있음).

from requests import Session
from bs4 import BeautifulSoup as Bs

s = Session() # Keeps things stored in for future use

# If you look at the HTML, this is the "action" of the form (in this case happens to be the same as the form itself, not always true)
form_url = "https://online.portalberni.ca/WebApps/PIP/Pages/Search.aspx?templateName=permit%20reporting"

# Gets the HTML of the form
r = s.get(form_url)
html = Bs(r.text, "lxml")
form = html.find("form")

# Finds hidden inputs in the form that are necessary for a successful POST
hidden = form.find_all("input", {"type": "hidden"})
data = {i["name"]: i["value"] for i in hidden}

"""
There is javascript code that changes the form data before submission (onsubmit in the
form). I found this by using developer tools in chrome to see what the POST data actually
was, not by analyzing the javascript
"""
data["ctl00$FeaturedContent$ToolkitScriptManager1"] = "ctl00$FeaturedContent$updpnl_search|ctl00$FeaturedContent$btn_ViewReport"
data["__EVENTTARGET"] = ""
data["__EVENTARGUMENT"] = ""
data["__ASYNCPOST"] = "true"
data["ctl00$FeaturedContent$btn_ViewReport"] = "Search"

# Change to your date range
data["ctl00$FeaturedContent$txt_FromDate"] = "01/01/2021"
data["ctl00$FeaturedContent$txt_ToDate"] = "01/10/2021"

# Submits the form
headers = {
    "Content-type": "application/x-www-form-urlencoded; charset=UTF-8",
    "Referer": "https://online.portalberni.ca/WebApps/PIP/Pages/Search.aspx?templateName=permit%20reporting",
    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36",
}
s.post(form_url, data=data, headers=headers)

# The page with the results you're looking for
results_url = "https://online.portalberni.ca/WebApps/PIP/Pages/PropBasedReportSelection.aspx?templateName=permit%20reporting"
r = s.get(results_url)

이 양식을 건너 뛰고 두 번째 페이지 양식 만 수행 할 수도 있지만 시도하지 않았습니다. 이것은 적어도 당신을 올바른 길로 인도해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자바 스크립트를 사용하는 웹 사이트 스크래핑

분류에서Dev

자바 스크립트는 웹 페이지를 읽을 수 있습니까?

분류에서Dev

자바 스크립트를 사용하여 웹 페이지의 버튼을 어떻게 클릭합니까?

분류에서Dev

자바를 사용하여 웹 페이지에서 자바 스크립트를 실행하는 방법

분류에서Dev

자바 스크립트를 사용하여 웹 페이지에서 재생되는 비디오를 감지하는 방법이 있습니까?

분류에서Dev

사용자가 웹 사이트의 자바 스크립트를 편집 할 수 있습니까?

분류에서Dev

스크롤 할 때 자바 스크립트를 사용하여 요소를로드하는 웹 페이지에서 스크랩하려면 어떻게해야합니까?

분류에서Dev

자바 스크립트에 통합 된 웹 페이지 출력의 가치

분류에서Dev

일부 웹 페이지가 모두 자바 스크립트를 사용하여 렌더링되는 이유는 무엇입니까?

분류에서Dev

자바 스크립트를 사용하여 원격 XML을 생성하고 웹 페이지에서 사용

분류에서Dev

자바 스크립트를 사용하여 웹 페이지의 배경색을 변경하는 입력 상자

분류에서Dev

스크립트를 통해 웹 페이지와 상호 작용하나요?

분류에서Dev

웹 페이지의 런타임에 자바 스크립트를 사용하여 컨트롤을 삽입하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트 라이브러리 용 스칼라 래퍼를 보관할 저장소가 있습니까?

분류에서Dev

자바 스크립트를 사용하여 특정 <div>를 제외하고 웹 페이지의 모든 이미지에 클래스 추가

분류에서Dev

웹 페이지 / 자바 스크립트에서이 효과를 수행하는 데 사용되는 것은 무엇입니까?

분류에서Dev

자바 스크립트를 사용하여 웹 페이지에 버튼 추가 시도

분류에서Dev

자바 스크립트 요소 웹 스크래핑 (가급적 Selenium없이)

분류에서Dev

자바 스크립트 : 한 웹 페이지에서 다른 웹 페이지로 데이터를 전달하는 간단한 방법이 있습니까?

분류에서Dev

웹 페이지가 자바 스크립트를 사용하여 추가 된 사진을 렌더링하지 않습니다.

분류에서Dev

동적 자바 스크립트를 사용하는 원격 URL에서 페이지 요소를 가져 오려면 어떻게해야합니까?

분류에서Dev

자바 스크립트 기반 웹 페이지에서 데이터를 가져올 수 없습니다.

분류에서Dev

사용자 지정 C # 웹 브라우저는 자바 스크립트를 지원할 수 없습니다.

분류에서Dev

자바 스크립트로 래퍼를 작성하는 방법?

분류에서Dev

페이지에서 자바 스크립트 기능의 가용성 확인

분류에서Dev

스크래피 페이지 매김은 자바 스크립트를 사용합니다.

분류에서Dev

Excel vba를 사용하여 자바 스크립트 / CSS 웹 사이트에서 요소를 선택하려면 어떻게해야합니까?

분류에서Dev

자바 스크립트를 요소에 바인딩 할 때 더 많은 특이성을 사용합니까?

분류에서Dev

내가 만든 웹 사이트의 웹 페이지를 자바 스크립트를 사용하여 자동으로 전환하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    자바 스크립트를 사용하는 웹 사이트 스크래핑

  2. 2

    자바 스크립트는 웹 페이지를 읽을 수 있습니까?

  3. 3

    자바 스크립트를 사용하여 웹 페이지의 버튼을 어떻게 클릭합니까?

  4. 4

    자바를 사용하여 웹 페이지에서 자바 스크립트를 실행하는 방법

  5. 5

    자바 스크립트를 사용하여 웹 페이지에서 재생되는 비디오를 감지하는 방법이 있습니까?

  6. 6

    사용자가 웹 사이트의 자바 스크립트를 편집 할 수 있습니까?

  7. 7

    스크롤 할 때 자바 스크립트를 사용하여 요소를로드하는 웹 페이지에서 스크랩하려면 어떻게해야합니까?

  8. 8

    자바 스크립트에 통합 된 웹 페이지 출력의 가치

  9. 9

    일부 웹 페이지가 모두 자바 스크립트를 사용하여 렌더링되는 이유는 무엇입니까?

  10. 10

    자바 스크립트를 사용하여 원격 XML을 생성하고 웹 페이지에서 사용

  11. 11

    자바 스크립트를 사용하여 웹 페이지의 배경색을 변경하는 입력 상자

  12. 12

    스크립트를 통해 웹 페이지와 상호 작용하나요?

  13. 13

    웹 페이지의 런타임에 자바 스크립트를 사용하여 컨트롤을 삽입하는 방법은 무엇입니까?

  14. 14

    자바 스크립트 라이브러리 용 스칼라 래퍼를 보관할 저장소가 있습니까?

  15. 15

    자바 스크립트를 사용하여 특정 <div>를 제외하고 웹 페이지의 모든 이미지에 클래스 추가

  16. 16

    웹 페이지 / 자바 스크립트에서이 효과를 수행하는 데 사용되는 것은 무엇입니까?

  17. 17

    자바 스크립트를 사용하여 웹 페이지에 버튼 추가 시도

  18. 18

    자바 스크립트 요소 웹 스크래핑 (가급적 Selenium없이)

  19. 19

    자바 스크립트 : 한 웹 페이지에서 다른 웹 페이지로 데이터를 전달하는 간단한 방법이 있습니까?

  20. 20

    웹 페이지가 자바 스크립트를 사용하여 추가 된 사진을 렌더링하지 않습니다.

  21. 21

    동적 자바 스크립트를 사용하는 원격 URL에서 페이지 요소를 가져 오려면 어떻게해야합니까?

  22. 22

    자바 스크립트 기반 웹 페이지에서 데이터를 가져올 수 없습니다.

  23. 23

    사용자 지정 C # 웹 브라우저는 자바 스크립트를 지원할 수 없습니다.

  24. 24

    자바 스크립트로 래퍼를 작성하는 방법?

  25. 25

    페이지에서 자바 스크립트 기능의 가용성 확인

  26. 26

    스크래피 페이지 매김은 자바 스크립트를 사용합니다.

  27. 27

    Excel vba를 사용하여 자바 스크립트 / CSS 웹 사이트에서 요소를 선택하려면 어떻게해야합니까?

  28. 28

    자바 스크립트를 요소에 바인딩 할 때 더 많은 특이성을 사용합니까?

  29. 29

    내가 만든 웹 사이트의 웹 페이지를 자바 스크립트를 사용하여 자동으로 전환하려면 어떻게해야합니까?

뜨겁다태그

보관