ホームページ  >  に質問  >  本文

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日前529

全員に返信(3)返信します

  • PHP中文网

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

    おそらくこのページでは、キャプチャしたいデータは、ページが読み込まれた後に js を使用してレンダリングされます。つまり、この #full_DoctorSpecialize
    のデータはサーバーから取得された ajax です。そのようなデータを具体的にどのように取得するかというと、Baidu から phantomjs をダウンロードすると、必ず何かが得られます。

    返事
    0
  • PHP中文网

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

    この2つの情報は直接取得することもできますが、JSブロックBigPipe.onPageletArrive({这个里面}) , 可以通过正则表达式获取。这个里面はJSON形式の文字列です。マッチング後、簡単にjsonに変換できます。取得したい場合は、クエリ インターフェイスを使用することは可能ですが、JS コードを分析する必要があるため、パケット キャプチャ ツールを使用して http リクエストをキャプチャし、リクエストによって返されたデータを比較することができます。 、通常の一致を作成する方が高速です。

    返事
    0
  • 怪我咯

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

    これは、js によってレンダリングされる上記のようなものです。コンテンツは js コード内にあり、必要な情報を取得するために、js コード内の要素を定期的に照合できます。

    返事
    0
  • キャンセル返事