Heim  >  Fragen und Antworten  >  Hauptteil

Python crawlt Webseiten mit verstümmelten Anfragen

**Ich habe zuvor Daten aus Schiedsrichterdokumenten gecrawlt. Nachdem ich den Crawler in diesem Zeitraum erneut ausgeführt hatte, stellte ich fest, dass die Webseitendaten nicht abgerufen werden konnten.
Bei der Suche stellte ich fest, dass der Quellcode der Anforderungswebseite verstümmelt zurückgegeben wurde Code**

(Fangen Sie einen Teil der zurückgegebenen Daten wie folgt ab:<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta id="JLyKZlWgYjpTkAsEt9LnA" )

Ich weiß nicht, ob die Website den Webinhalt verschlüsselt hat. Wie kann ich dieses Problem lösen? Danke!

Einen Teil des Programmquellcodes abfangen:

headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4',
        'Accept-Encoding': 'gzip, deflate',
        'Connection': 'keep-alive',
        'Content-Type': 'text/html; charset=utf-8'}
html = requests.post('http://wenshu.court.gov.cn/List/ListContent', data=data, headers=headers)
print(html.text)

Aber die Daten, die zurückgegeben werden sollen, werden im Bewertungselement zurückgegeben. Was ist hier das Problem?

Die zurückgegebenen Daten waren bei normaler Ausführung des Programms wie folgt:

phpcn_u1582phpcn_u15822675 Tage vor1203

Antworte allen(4)Ich werde antworten

  • 仅有的幸福

    仅有的幸福2017-06-22 11:53:56

    ajax 加载的结果页面,如果在 network 里获取不到类似 json 的反馈结果。就使用PHANTOMJS来模拟加载。然后匹配爬取。

    Antwort
    0
  • 高洛峰

    高洛峰2017-06-22 11:53:56

    你的 html 对象使用的编码不对,
    加入一行 html.encoding = html.apparent_encoding
    根据实际获取的 text 推测编码,重新解码。

    Antwort
    0
  • 怪我咯

    怪我咯2017-06-22 11:53:56

    如果你愿意去钻,给你个参考地址:http://www.qingpingshan.com/j...

    Antwort
    0
  • 学习ing

    学习ing2017-06-22 11:53:56

    print html.content

    Antwort
    0
  • StornierenAntwort