Hướng dẫn how to install requests-html in python - cách cài đặt request-html trong python

Yêu cầu-HTML: phân tích cú pháp HTML cho Human ™

Hướng dẫn how to install requests-html in python - cách cài đặt request-html trong python

Thư viện này dự định làm phân tích cú pháp HTML (ví dụ: cạo web) đơn giản và trực quan nhất có thể.

Nếu bạn quan tâm đến việc hỗ trợ tài chính cho nguồn mở của Kenneth Reitz, hãy xem xét việc truy cập liên kết này. Hỗ trợ của bạn giúp rất nhiều với sự bền vững của động lực, vì nguồn mở không còn là một phần trong công việc hàng ngày của tôi.

Khi sử dụng thư viện này, bạn sẽ tự động nhận được:

  • Hỗ trợ JavaScript đầy đủ!!

  • Bộ chọn CSS (a.k.a theo phong cách jQuery, nhờ PyQuery).

  • Các bộ chọn XPath, cho những người mờ nhạt trong tim.

  • Tác nhân người dùng bị chế giễu (giống như trình duyệt web thực).

  • Tự động theo dõi chuyển hướng.

  • Kết nối tập trung và sự kiên trì cookie.

  • Các yêu cầu trải nghiệm bạn biết và yêu thích, với khả năng phân tích kỳ diệu.

  • Hỗ trợ không đồng bộ

Hướng dẫn & Sử dụng

Thực hiện yêu cầu nhận được ‘python.org, sử dụng các yêu cầu:

>>> from requests_html import HTMLSession
>>> session = HTMLSession()

>>> r = session.get('https://python.org/')

Hãy thử Async và nhận một số trang web cùng một lúc:

>>> from requests_html import AsyncHTMLSession
>>> asession = AsyncHTMLSession()

>>> async def get_pythonorg():
...    r = await asession.get('https://python.org/')

>>> async def get_reddit():
...    r = await asession.get('https://reddit.com/')

>>> async def get_google():
...    r = await asession.get('https://google.com/')

>>> result = session.run(get_pythonorg, get_reddit, get_google)

Lấy một danh sách tất cả các liên kết trên trang, như là (loại neo được loại trừ):

>>> r.html.links
{'//docs.python.org/3/tutorial/', '/about/apps/', 'https://github.com/python/pythondotorg/issues', '/accounts/login/', '/dev/peps/', '/about/legal/', '//docs.python.org/3/tutorial/introduction.html#lists', '/download/alternatives', 'http://feedproxy.google.com/~r/PythonInsider/~3/kihd2DW98YY/python-370a4-is-available-for-testing.html', '/download/other/', '/downloads/windows/', 'https://mail.python.org/mailman/listinfo/python-dev', '/doc/av', 'https://devguide.python.org/', '/about/success/#engineering', 'https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_Event', 'https://www.openstack.org', '/about/gettingstarted/', 'http://feedproxy.google.com/~r/PythonInsider/~3/AMoBel8b8Mc/python-3.html', '/success-stories/industrial-light-magic-runs-python/', 'http://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator', '/', 'http://pyfound.blogspot.com/', '/events/python-events/past/', '/downloads/release/python-2714/', 'https://wiki.python.org/moin/PythonBooks', 'http://plus.google.com/+Python', 'https://wiki.python.org/moin/', 'https://status.python.org/', '/community/workshops/', '/community/lists/', 'http://buildbot.net/', '/community/awards', 'http://twitter.com/ThePSF', 'https://docs.python.org/3/license.html', '/psf/donations/', 'http://wiki.python.org/moin/Languages', '/dev/', '/events/python-user-group/', 'https://wiki.qt.io/PySide', '/community/sigs/', 'https://wiki.gnome.org/Projects/PyGObject', 'http://www.ansible.com', 'http://www.saltstack.com', 'http://planetpython.org/', '/events/python-events', '/about/help/', '/events/python-user-group/past/', '/about/success/', '/psf-landing/', '/about/apps', '/about/', 'http://www.wxpython.org/', '/events/python-user-group/665/', 'https://www.python.org/psf/codeofconduct/', '/dev/peps/peps.rss', '/downloads/source/', '/psf/sponsorship/sponsors/', 'http://bottlepy.org', 'http://roundup.sourceforge.net/', 'http://pandas.pydata.org/', 'http://brochure.getpython.info/', 'https://bugs.python.org/', '/community/merchandise/', 'http://tornadoweb.org', '/events/python-user-group/650/', 'http://flask.pocoo.org/', '/downloads/release/python-364/', '/events/python-user-group/660/', '/events/python-user-group/638/', '/psf/', '/doc/', 'http://blog.python.org', '/events/python-events/604/', '/about/success/#government', 'http://python.org/dev/peps/', 'https://docs.python.org', 'http://feedproxy.google.com/~r/PythonInsider/~3/zVC80sq9s00/python-364-is-now-available.html', '/users/membership/', '/about/success/#arts', 'https://wiki.python.org/moin/Python2orPython3', '/downloads/', '/jobs/', 'http://trac.edgewall.org/', 'http://feedproxy.google.com/~r/PythonInsider/~3/wh73_1A-N7Q/python-355rc1-and-python-348rc1-are-now.html', '/privacy/', 'https://pypi.python.org/', 'http://www.riverbankcomputing.co.uk/software/pyqt/intro', 'http://www.scipy.org', '/community/forums/', '/about/success/#scientific', '/about/success/#software-development', '/shell/', '/accounts/signup/', 'http://www.facebook.com/pythonlang?fref=ts', '/community/', 'https://kivy.org/', '/about/quotes/', 'http://www.web2py.com/', '/community/logos/', '/community/diversity/', '/events/calendars/', 'https://wiki.python.org/moin/BeginnersGuide', '/success-stories/', '/doc/essays/', '/dev/core-mentorship/', 'http://ipython.org', '/events/', '//docs.python.org/3/tutorial/controlflow.html', '/about/success/#education', '/blogs/', '/community/irc/', 'http://pycon.blogspot.com/', '//jobs.python.org', 'http://www.pylonsproject.org/', 'http://www.djangoproject.com/', '/downloads/mac-osx/', '/about/success/#business', 'http://feedproxy.google.com/~r/PythonInsider/~3/x_c9D0S-4C4/python-370b1-is-now-available-for.html', 'http://wiki.python.org/moin/TkInter', 'https://docs.python.org/faq/', '//docs.python.org/3/tutorial/controlflow.html#defining-functions'}

Lấy một danh sách tất cả các liên kết trên trang, ở dạng tuyệt đối (loại trừ neo):

>>> r.html.absolute_links
{'https://github.com/python/pythondotorg/issues', 'https://docs.python.org/3/tutorial/', 'https://www.python.org/about/success/', 'http://feedproxy.google.com/~r/PythonInsider/~3/kihd2DW98YY/python-370a4-is-available-for-testing.html', 'https://www.python.org/dev/peps/', 'https://mail.python.org/mailman/listinfo/python-dev', 'https://www.python.org/doc/', 'https://www.python.org/', 'https://www.python.org/about/', 'https://www.python.org/events/python-events/past/', 'https://devguide.python.org/', 'https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_Event', 'https://www.openstack.org', 'http://feedproxy.google.com/~r/PythonInsider/~3/AMoBel8b8Mc/python-3.html', 'https://docs.python.org/3/tutorial/introduction.html#lists', 'http://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator', 'http://pyfound.blogspot.com/', 'https://wiki.python.org/moin/PythonBooks', 'http://plus.google.com/+Python', 'https://wiki.python.org/moin/', 'https://www.python.org/events/python-events', 'https://status.python.org/', 'https://www.python.org/about/apps', 'https://www.python.org/downloads/release/python-2714/', 'https://www.python.org/psf/donations/', 'http://buildbot.net/', 'http://twitter.com/ThePSF', 'https://docs.python.org/3/license.html', 'http://wiki.python.org/moin/Languages', 'https://docs.python.org/faq/', 'https://jobs.python.org', 'https://www.python.org/about/success/#software-development', 'https://www.python.org/about/success/#education', 'https://www.python.org/community/logos/', 'https://www.python.org/doc/av', 'https://wiki.qt.io/PySide', 'https://www.python.org/events/python-user-group/660/', 'https://wiki.gnome.org/Projects/PyGObject', 'http://www.ansible.com', 'http://www.saltstack.com', 'https://www.python.org/dev/peps/peps.rss', 'http://planetpython.org/', 'https://www.python.org/events/python-user-group/past/', 'https://docs.python.org/3/tutorial/controlflow.html#defining-functions', 'https://www.python.org/community/diversity/', 'https://docs.python.org/3/tutorial/controlflow.html', 'https://www.python.org/community/awards', 'https://www.python.org/events/python-user-group/638/', 'https://www.python.org/about/legal/', 'https://www.python.org/dev/', 'https://www.python.org/download/alternatives', 'https://www.python.org/downloads/', 'https://www.python.org/community/lists/', 'http://www.wxpython.org/', 'https://www.python.org/about/success/#government', 'https://www.python.org/psf/', 'https://www.python.org/psf/codeofconduct/', 'http://bottlepy.org', 'http://roundup.sourceforge.net/', 'http://pandas.pydata.org/', 'http://brochure.getpython.info/', 'https://www.python.org/downloads/source/', 'https://bugs.python.org/', 'https://www.python.org/downloads/mac-osx/', 'https://www.python.org/about/help/', 'http://tornadoweb.org', 'http://flask.pocoo.org/', 'https://www.python.org/users/membership/', 'http://blog.python.org', 'https://www.python.org/privacy/', 'https://www.python.org/about/gettingstarted/', 'http://python.org/dev/peps/', 'https://www.python.org/about/apps/', 'https://docs.python.org', 'https://www.python.org/success-stories/', 'https://www.python.org/community/forums/', 'http://feedproxy.google.com/~r/PythonInsider/~3/zVC80sq9s00/python-364-is-now-available.html', 'https://www.python.org/community/merchandise/', 'https://www.python.org/about/success/#arts', 'https://wiki.python.org/moin/Python2orPython3', 'http://trac.edgewall.org/', 'http://feedproxy.google.com/~r/PythonInsider/~3/wh73_1A-N7Q/python-355rc1-and-python-348rc1-are-now.html', 'https://pypi.python.org/', 'https://www.python.org/events/python-user-group/650/', 'http://www.riverbankcomputing.co.uk/software/pyqt/intro', 'https://www.python.org/about/quotes/', 'https://www.python.org/downloads/windows/', 'https://www.python.org/events/calendars/', 'http://www.scipy.org', 'https://www.python.org/community/workshops/', 'https://www.python.org/blogs/', 'https://www.python.org/accounts/signup/', 'https://www.python.org/events/', 'https://kivy.org/', 'http://www.facebook.com/pythonlang?fref=ts', 'http://www.web2py.com/', 'https://www.python.org/psf/sponsorship/sponsors/', 'https://www.python.org/community/', 'https://www.python.org/download/other/', 'https://www.python.org/psf-landing/', 'https://www.python.org/events/python-user-group/665/', 'https://wiki.python.org/moin/BeginnersGuide', 'https://www.python.org/accounts/login/', 'https://www.python.org/downloads/release/python-364/', 'https://www.python.org/dev/core-mentorship/', 'https://www.python.org/about/success/#business', 'https://www.python.org/community/sigs/', 'https://www.python.org/events/python-user-group/', 'http://ipython.org', 'https://www.python.org/shell/', 'https://www.python.org/community/irc/', 'https://www.python.org/about/success/#engineering', 'http://www.pylonsproject.org/', 'http://pycon.blogspot.com/', 'https://www.python.org/about/success/#scientific', 'https://www.python.org/doc/essays/', 'http://www.djangoproject.com/', 'https://www.python.org/success-stories/industrial-light-magic-runs-python/', 'http://feedproxy.google.com/~r/PythonInsider/~3/x_c9D0S-4C4/python-370b1-is-now-available-for.html', 'http://wiki.python.org/moin/TkInter', 'https://www.python.org/jobs/', 'https://www.python.org/events/python-events/604/'}

Chọn một phần tử có bộ chọn CSS:

>>> about = r.html.find('#about', first=True)

Lấy một phần tử nội dung văn bản:

>>> print(about.text)
About
Applications
Quotes
Getting Started
Help
Python Brochure

Hướng nội Một phần tử thuộc tính của các yếu tố:

>>> about.attrs
{'id': 'about', 'class': ('tier-1', 'element-1'), 'aria-haspopup': 'true'}

Kết xuất một phần tử HT HTML:

>>> about.html
'
  • \nAbout\n\n
  • '

    Chọn các phần tử trong các phần tử:

    >>> about.find('a')
    [, , , , , ]

    Tìm kiếm các liên kết trong một phần tử:

    >>> about.absolute_links
    {'http://brochure.getpython.info/', 'https://www.python.org/about/gettingstarted/', 'https://www.python.org/about/', 'https://www.python.org/about/quotes/', 'https://www.python.org/about/help/', 'https://www.python.org/about/apps/'}

    Tìm kiếm văn bản trên trang:

    >>> from requests_html import AsyncHTMLSession
    >>> asession = AsyncHTMLSession()
    
    >>> async def get_pythonorg():
    ...    r = await asession.get('https://python.org/')
    
    >>> async def get_reddit():
    ...    r = await asession.get('https://reddit.com/')
    
    >>> async def get_google():
    ...    r = await asession.get('https://google.com/')
    
    >>> result = session.run(get_pythonorg, get_reddit, get_google)
    0

    Ví dụ về bộ chọn CSS phức tạp hơn (được sao chép từ công cụ Chrome Dev):

    >>> from requests_html import AsyncHTMLSession
    >>> asession = AsyncHTMLSession()
    
    >>> async def get_pythonorg():
    ...    r = await asession.get('https://python.org/')
    
    >>> async def get_reddit():
    ...    r = await asession.get('https://reddit.com/')
    
    >>> async def get_google():
    ...    r = await asession.get('https://google.com/')
    
    >>> result = session.run(get_pythonorg, get_reddit, get_google)
    1

    XPath cũng được hỗ trợ:

    >>> from requests_html import AsyncHTMLSession
    >>> asession = AsyncHTMLSession()
    
    >>> async def get_pythonorg():
    ...    r = await asession.get('https://python.org/')
    
    >>> async def get_reddit():
    ...    r = await asession.get('https://reddit.com/')
    
    >>> async def get_google():
    ...    r = await asession.get('https://google.com/')
    
    >>> result = session.run(get_pythonorg, get_reddit, get_google)
    2

    Hỗ trợ JavaScript

    Hãy để lấy một số văn bản mà JavaScript kết xuất bởi JavaScript:

    >>> from requests_html import AsyncHTMLSession
    >>> asession = AsyncHTMLSession()
    
    >>> async def get_pythonorg():
    ...    r = await asession.get('https://python.org/')
    
    >>> async def get_reddit():
    ...    r = await asession.get('https://reddit.com/')
    
    >>> async def get_google():
    ...    r = await asession.get('https://google.com/')
    
    >>> result = session.run(get_pythonorg, get_reddit, get_google)
    3

    Hoặc bạn cũng có thể làm điều này Async:

    >>> from requests_html import AsyncHTMLSession
    >>> asession = AsyncHTMLSession()
    
    >>> async def get_pythonorg():
    ...    r = await asession.get('https://python.org/')
    
    >>> async def get_reddit():
    ...    r = await asession.get('https://reddit.com/')
    
    >>> async def get_google():
    ...    r = await asession.get('https://google.com/')
    
    >>> result = session.run(get_pythonorg, get_reddit, get_google)
    4

    Lưu ý, lần đầu tiên bạn chạy phương thức render (), nó sẽ tải crom vào thư mục nhà của bạn (ví dụ: ~/.pyppeteer/). Điều này chỉ xảy ra một lần.render() method, it will download Chromium into your home directory (e.g. ~/.pyppeteer/). This only happens once.

    Sử dụng mà không cần yêu cầu

    Bạn cũng có thể sử dụng thư viện này mà không cần yêu cầu:

    >>> from requests_html import AsyncHTMLSession
    >>> asession = AsyncHTMLSession()
    
    >>> async def get_pythonorg():
    ...    r = await asession.get('https://python.org/')
    
    >>> async def get_reddit():
    ...    r = await asession.get('https://reddit.com/')
    
    >>> async def get_google():
    ...    r = await asession.get('https://google.com/')
    
    >>> result = session.run(get_pythonorg, get_reddit, get_google)
    5

    Cài đặt

    >>> from requests_html import AsyncHTMLSession
    >>> asession = AsyncHTMLSession()
    
    >>> async def get_pythonorg():
    ...    r = await asession.get('https://python.org/')
    
    >>> async def get_reddit():
    ...    r = await asession.get('https://reddit.com/')
    
    >>> async def get_google():
    ...    r = await asession.get('https://google.com/')
    
    >>> result = session.run(get_pythonorg, get_reddit, get_google)
    6

    Chỉ Python 3.6 được hỗ trợ.Python 3.6 is supported.

    Làm cách nào để cài đặt mô -đun yêu cầu trong Python?

    Các cửa sổ. Người dùng Windows cần điều hướng đến thư mục Python, sau đó cài đặt mô -đun yêu cầu như sau:> Python -M PIP Yêu cầu cài đặt ..
    Mac. Đối với các macOS, cài đặt Python thông qua 'Brew Home Brew'. ....
    Xác minh cài đặt Python. ....
    Truy cập vào Python qua thiết bị đầu cuối. ....
    Nhập thư viện yêu cầu. ....
    Để gửi yêu cầu. ....
    Để phân tích cú pháp phản ứng ..

    Các yêu cầu cài đặt PIP trong Python là gì?

    Các yêu cầu cài đặt PIP vào thư mục ảo Bạn có thể sử dụng PIP để cài đặt phiên bản cụ thể của mô -đun yêu cầu vào môi trường ảo cho Python 2 hoặc VENV cho các dự án Python 3. VENV sẽ tạo cài đặt Python ảo trong thư mục.install a specific version of the Requests module into a Virtualenv environment for Python 2 or Venv for Python 3 projects. venv will create a virtual Python installation in the folder.

    Yêu cầu HTML là gì?

    Thư viện yêu cầu-HTML là trình phân tích cú pháp HTML cho phép bạn sử dụng bộ chọn CSS và bộ chọn XPath để trích xuất thông tin bạn muốn từ trang web.an HTML parser that lets you use CSS Selectors and XPath Selectors to extract the information that you want from a web page.

    Làm cách nào để sửa lỗi không có mô -đun có tên yêu cầu trong HTML?

    Python "ModulenotFounderRor: Không có mô -đun có tên 'Yêu cầu'" xảy ra khi chúng tôi quên cài đặt mô -đun yêu cầu trước khi nhập hoặc cài đặt nó trong môi trường không chính xác.Để giải quyết lỗi, cài đặt mô -đun bằng cách chạy lệnh PIP Install yêu cầu.install the module by running the pip install requests command.