用于数据收集的Python库

用于数据收集的Python库

你是否曾遇到过这样的情况:缺少解决问题的数据?这是数据科学中一个永恒的问题。这也是为什么学习提取和收集数据对数据科学家来说是一项非常重要的技能。数据提取和收集开辟了前所未有的道路。

以下是三个用于提取和收集数据的Python库:
Beautiful Soup

传送门:https://www.crummy.com/software/BeautifulSoup/bs4/doc/

收集数据的最佳方式之一就是抓取网站(当然是以合乎道德和法律的手段!)徒手做这件事需要耗费大量的劳动和时间。Beautiful Soup无疑是一大救星。
Beautiful Soup是一个HTML和XML解析器,可为被解析的页面创建解析树,从而用于从web页面中提取数据。从网页中提取数据的过程称为网页抓取。
使用以下代码可安装BeautifulSoup:

pip install beautifulsoup4

下面是一个可实现从HTML中提取所有锚标记的Beautiful Soup简单代码:

#!/usr/bin/python3
# Anchor extraction from html document
from bs4 import BeautifulSoup
from urllib.request import urlopen

with urlopen('LINK') as response:
    soup = BeautifulSoup(response, 'html.parser')
    for anchor in soup.find_all('a'):
        print(anchor.get('href', '/'))

建议阅读下面的文章,学习如何在Python中使用Beautiful Soup:
《新手指南:在Python中使用BeautifulSoup进行网页抓取》传送门:https://www.analyticsvidhya.com/blog/2015/10/beginner-guide-web-scraping-beautiful-soup-python/

Scrapy
传送门:https://docs.scrapy.org/en/latest/intro/tutorial.html
Scrapy是另一个可有效用于网页抓取的Python库。它是一个开源的协作框架,用于从网站中提取所需数据。使用起来快捷简单。
下面是用于安装Scrapy的代码:

pip install scrapy

Scrapy是一个用于大规模网页抓取的框架。可提供所有需要的工具有效地从网站中抓取数据,且依需要处理数据,并以使用者偏好的结构和格式存储数据。

下面是一个实现Scrapy的简单代码:

import scrapy

class Spider(scrapy.Spider):
    name = 'NAME'
    start_urls = ['LINK']

    def parse(self, response):
        for title in response.css('.post-header>h2'):
            yield {'title': title.css('a ::text').get()}

        for next_page in response.css('a.next-posts-link'):
            yield response.follow(next_page, self.parse

下面是一个学习Scrapy并在Python中实现Scrapy的绝佳教程:

《使用Scrapy在Python中进行网页抓取(含多个示例)》传送门:https://www.analyticsvidhya.com/blog/2017/07/web-scraping-in-python-using-scrapy/

Selenium
传送门:https://www.seleniumhq.org/
Selenium是一个倍受欢迎的自动化浏览器工具。在业界常用于测试,但对于网页抓取也非常方便。Selenium在IT领域非常流行。
编写Python脚本来自动化使用Selenium的web浏览器是很容易的。它允许免费高效地提取数据,并将其存储在首选格式中以备后用。
关于使用Python和Selenium抓取YouTube视频数据的文章:
《数据科学项目:使用Python和Selenium抓取YouTube数据对视频进行分类》传送门:https://www.analyticsvidhya.com/blog/2019/05/scraping-classifying-youtube-video-data-python-selenium/

上一篇:82 爬虫 - Scrapy 和 scrapy-redis的区别


下一篇:2021/6/17爬虫第二十五次课(scrapy_reids补充)