recherche

Maison  >  Questions et réponses  >  le corps du texte

网页爬虫 - 【如图】python爬取的html页面和浏览器显示源码的结果不同

高洛峰高洛峰2893 Il y a quelques jours788

répondre à tous(4)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:33:41

    Après des tests réels, la conclusion est que bs4 modifie l'ordre des attributs.

    1. Cliquez avec le bouton droit sur la page dans le navigateur et sélectionnez :

    Élément d'inspection

    Afficher le code source de la page Web

    2. Comparaison dans le programme python3 :

    import re
    ptn_tr = re.compile(r'<tr[^>]+>')
    
    import requests as req
    rsp=req.get('http://www.pythonscraping.com/pages/page3.html')
    html = rsp.text
    print('requests:\t', ptn_tr.findall(html)[0])
    
    from urllib.request import urlopen
    rsp = urlopen("http://www.pythonscraping.com/pages/page3.html")
    html = rsp.read().decode()
    print('urlopen:\t', ptn_tr.findall(html)[0])
    
    from bs4 import BeautifulSoup
    html = str(BeautifulSoup(html,"lxml"))
    print('bs4Soup:\t', ptn_tr.findall(html)[0])
    

    Résultat :

    requests:     <tr id="gift1" class="gift">
    urlopen:     <tr id="gift1" class="gift">
    bs4Soup:     <tr class="gift" id="gift1">

    répondre
    0
  • 阿神

    阿神2017-04-18 09:33:41

    L'ordre de la classe et de l'identifiant est simplement différent.
    Lorsque vous utilisez Chrome et Firefox pour afficher le code source de la même page Web, l'ordre est également différent.

    répondre
    0
  • 高洛峰

    高洛峰2017-04-18 09:33:41

    Il est recommandé à la personne qui pose la question de publier le site Web ou même son propre code afin que d'autres puissent vous aider à le déboguer. Il est normal d'être différent. Si le contenu analysé par votre robot d'exploration est enregistré en tant que page statique et est différent de ce que vous voyez avec le navigateur, alors le mécanisme anti-crawler de l'autre partie doit l'avoir reconnu, donc le serveur renverra des informations différentes. . Il existe de nombreuses façons d'identifier les robots d'exploration. Si vous avez des questions, n'hésitez pas à les poser

    .

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:33:41

    L'affiche vous recommande de publier tout le code source, car le site Web peut identifier si vous utilisez un navigateur humain ou un robot d'exploration.

    En regardant le code actuel, il est recommandé d'ajouter des informations d'en-tête ! use-agent Cette ligne de code !

    répondre
    0
  • Annulerrépondre