当前位置: 首页 > 面试题库 >

抓取的HTML与源代码有何不同?

荆亦
2023-03-14
问题内容

我正在从网站上抓取餐馆列表(已获得许可),但我遇到了问题。网站上的html
python片段与源代码中的html不同。在python的html中找到其网站上不到一半的餐厅。这是我的代码如下所示:

import requests
from bs4 import BeautifulSoup
from tempfile import TemporaryFile
import xlwt

url = 'https://www.example.com'

r = requests.get(url)
data = BeautifulSoup(r.text)
soup = data.find_all('span',{'class':'restaurant_name'})
print soup

现在,我知道这很不方便,但由于公司不允许我使用,因此无法显示html。我只是想知道你们是否一般都知道python下载的html与源代码中的html有什么不同,以及我可以做些什么。

提前致谢!


问题答案:

您可以为此目的使用Selenium。它将像浏览器一样在运行时呈现您的网页。您可以将Selenium与firefox,chrome或phantomjs一起使用。

由于大多数站点都是由现代JavaScript框架组成的,因此我们基本上使用硒来完全呈现我们的网页。通常,它用于开发爬网程序/爬网程序以从网站的不同页面收集数据,或者Selenium也用于网络自动化。

有关Selenium的更多信息,请在此处阅读:http:
//selenium-
python.readthedocs.io/另外,我还为初学者撰写了有关Slenium的博客文章。也检查一下这个http://blog.hassanmehmood.com/creating-
your-first-crawler-in-python/

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

profile_link = 'http://hassanmehmood.com'


class TitleScrapper(object):

    def __init__(self):

        fp = webdriver.FirefoxProfile()
        fp.set_preference("browser.startup.homepage_override.mstone", "ignore") #Avoid startup screen
        fp.set_preference("startup.homepage_welcome_url.additional",  "about:blank")

        self.driver = webdriver.Firefox(firefox_profile=fp)
        self.driver.set_window_size(1120, 550)

    def scrape_profile(self):
        self.driver.get(profile_link)
        print self.driver.title
        self.driver.close()

    def scrape(self):
        self.scrape_profile()


if __name__ == '__main__':
    scraper = TitleScrapper()
    scraper.scrape()


 类似资料:
  • 网页爬取 编写网页需要使用 HTML 语言,如果你有 HTML 学习经历就能知道所谓 HTML 语言就是一种规格化文档。有时我们能很方便的从中获取一些需要的数据,并且保持数据原有格式,如 csv 、json 等格式。但有时网站并不会提供一目了然的数据格式。 所以我们就需要爬取网页。网页爬取就是通过电脑程序编写,从不同的网页中去删选、挖掘你需要的数据,并且保存数据相应的格式。 网页请求( Reque

  • 问题内容: 如何不使用来获取html源代码? 我需要知道这一点,因为在某些虚拟主机上已禁用,因此您不能使用。是否可以使用cURL获取html文件的源(如果启用了cURL支持)?如果是这样,怎么办?谢谢。 问题答案: 请尝试以下操作: 我只推荐小文件使用。大文件将作为一个整体读取,并且可能会产生内存错误。 编辑:在评论中进行了一些讨论之后,我们发现问题是服务器无法解析主机名,并且该页面另外是http

  • 问题内容: 我一直在使用正则表达式在PHP中进行HTML抓取。这是可行的,但结果是挑剔和脆弱的。有没有人使用过提供更强大解决方案的软件包?配置驱动的解决方案将是理想的选择,但我并不挑剔。 问题答案: 从页面抓取HTML后,我将推荐PHP简单HTMLDOM解析器。它支持无效的HTML,并提供了一种非常简单的方法来处理HTML元素。

  • 问题内容: 我正在考虑尝试BeautifulSoup,一个用于HTML抓取的Python包。还有其他我应该查看的HTML抓包工具吗?Python不是必需的,我实际上也对其他语言感兴趣。 到目前为止的故事: Python Beautiful Soup lxml HTQL Scrapy Mechanize Ruby Nokogiri Hpricot Mechanize scrAPI scRUBYt!

  • 除了常见的公有代码仓库,我们还支持与企业的私有 GitLab 仓库对接,可外网访问的 GitLab 仓库和企业内部 GitLab 仓库。该功能为企业版功能,如您需要了解,请跟我们联系。 可外网访问的 GitLab 仓库 在这种情况下,企业的 GitLab 代码仓库是外网可访问的,用户需要指定 GitLab 地址、用户名和 Token 等信息。 企业内部 GitLab 仓库 在这种情况下,企业的 G