Rumah  >  Soal Jawab  >  teks badan

python - 请教这个页面中的这两个信息能否不用无头浏览器爬取到?

在爬取"http://www.haodf.com/doctor/DE4r08xQdKSLBVM8i9sHYQ8uQGIO.htm"这个页面的时候, 发现"擅长"和"执业经历"这两个信息通过beautifulsoup是取不到的, 我选取这两个信息的代码如下:

soup.select('#full_DoctorSpecialize').get_text(strip=True)
soup.select('#full').get_text(strip=True)

查询页面发现这两个信息好像是通过JS查询的结果, 除了把网页全部正则表达式匹配的方法, 请教各位:
1, 这两个信息能否直接取到?
2, 除了类似"Selenium"这样的工具, 是否还有其他方式能够取到这两个信息?
3, 能否通过分析查询接口的方式解决?

谢谢

巴扎黑巴扎黑2740 hari yang lalu531

membalas semua(3)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 10:20:55

    Mungkin pada halaman ini, data yang anda ingin tangkap dipaparkan menggunakan js selepas halaman dimuatkan. Dalam erti kata lain, data dalam #full_DoctorSpecialize
    ini adalah ajax dan diambil dari pelayan. Khususnya bagaimana untuk mendapatkan data sedemikian, anda boleh memuat turun phantomjs dari Baidu, dan anda pasti akan mendapat sesuatu.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:20:55

    Dua maklumat ini boleh diperolehi secara langsung, tetapi maklumat tersebut terkandung dalam blok JS BigPipe.onPageletArrive({这个里面}) dan boleh diperolehi melalui ungkapan biasa. 这个里面 ialah rentetan dalam format JSON. Menukar kepada json selepas pemadanan adalah mudah untuk diproses. Jika anda ingin mendapatkannya melalui antara muka pertanyaan, ia sepatutnya boleh dilakukan, tetapi anda perlu menganalisis kod JS, yang terlalu menyusahkan Anda boleh menggunakan alat tangkapan paket untuk menangkap permintaan httpnya. Kemudian lihat data yang dikembalikan oleh permintaan itu. Sebagai perbandingan, adalah lebih pantas untuk menulis padanan biasa.

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 10:20:55

    Ini ialah pemaparan JS seperti yang dinyatakan di atas Kandungannya dalam kod JS Anda boleh memadankan elemen dalam kod JS secara kerap untuk mendapatkan maklumat yang anda inginkan

    balas
    0
  • Batalbalas