国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

crawler - Bagaimana untuk melengkapkan halaman fungsi JavaScript beralih dalam perangkak Python?
typecho
typecho 2017-06-13 09:24:39
0
2
1570

Apabila saya merangkak halaman web, saya perhatikan bahawa perubahan halamannya dilaksanakan oleh fungsi sedemikian Selepas membelok halaman, URL halaman tidak berubah:

<input class="buttonJump" name="goto2" onclick="dirGroupMblogToPage(document.getElementById('dirGroupMblogcp2').value)" type="button" value="Go"/>
     </input>
     
     
function dirGroupMblogToPage(currentPage){

    jQuery.post("dirGroupMblog.action", {"page.currentPage":currentPage,gid:MI.TalkBox.gid}, function(data){$("#talkMain").html(data);
        window.scrollTo(0, $css.getY(MI.talkList._body)-65);
    });

}

Menulis fungsi seperti ini untuk cuba mencapai perubahan halaman:

def login_page(login_url, content_url, usr_name="******@126.com", passwd="******"):
    # 實現(xiàn)登錄, 返回Session對象和獲得的頁面
    post_data = {'r': 'on', 'u': usr_name, 'p': passwd}
    s = requests.Session()
    s.post(login_url, post_data)
    r = s.get(content_url)
    return s, r

def turn_page(s, next_page, content_url):
    post_url = "http://sns.icourses.cn/dirGroupMblog.action"
    post_headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36", 
               "X-Requested-With":"XMLHttpRequest"}
    post_data = {"page.currentPage": next_page, "gid": 2632}
    s.post(post_url, data=post_data, headers = post_headers)
    res = s.get(content_url)
    return res

Tetapi penukaran halaman gagal selepas memanggil turn_page(). Bagaimana kita harus menyelesaikan masalah ini? Juga, apakah jenis pengetahuan yang perlu kita pelajari untuk menyelesaikan masalah seperti ini?

typecho
typecho

Following the voice in heart.

membalas semua(2)
阿神
  • Disyorkan menggunakan selenium

  • Sebagai contoh, jika anda perlu mengklik butang halaman seterusnya pada antara muka, atau anda perlu memasukkan kekunci atas, bawah, kiri dan kanan, halaman itu boleh diputar, pemacu web selenium boleh melakukannya dan memberi rujukan (Saya pernah merangkak novel laman web Cina Qidian )

  • Selenium boleh berinteraksi dengan halaman, klik, dwiklik, masuk, tunggu halaman dimuatkan (penantian tersirat, dan tunggu eksplisit). . . .

from selenium import webdriver
# from selenium.webdriver.common.keys import Keys

#driver = webdriver.PhantomJS(executable_path="D:\phantomjs-2.1.1-windows\bin\phantomjs")
# 我的windows 已配置環(huán)境變量,不需指定 executable_path,使用 Chrome需要對應的瀏覽器以及驅動程序
driver = webdriver.Chrome()

# url 為你需要加載的頁面url
url = 'http://sns.icourses.cn/*****'

# 打開頁面
driver.get(url)

# 在你的例子中,是需要點擊 button ,通過class 屬性獲取到button,然后執(zhí)行單擊 .click()
# 如果需要準確定位,可以自行搜索其他的 find_
driver.find_element_by_class_name("buttonJump").click()

# selenium webdriver 還有很多其它高級的用法,自行谷歌,你這個問題,搜索應該是能得到答案的,
Ty80

Terdapat beberapa situasi,
1 Halaman boleh diputar dengan meluncur atau mengklik melalui kesan js
2

Anda boleh menggunakan analisis rangkaian dalam alat pembangun Chrome untuk mendapatkan hasil, sama ada halaman html atau pemaparan json maklum balas.

json lebih mudah dikendalikan, hanya dapatkan hasilnya secara terus. Halaman html biasa perlu menggunakan pemadanan biasa dengan pemisah halaman. Kemudian masukkan pautan ke dalam kolam untuk dirangkak.

/a/11...

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan