1.3 网页数据抓取【stanford-cs329p】


Web scraping

  • 目标是将感兴趣的数据从网页中抓取出来
    • 噪音多,弱标签,有可能是无用信息
    • 数据量大
    • 例子:价格对比/跟踪网站
  • 很多机器学习的数据集就是从网页抓取的
    • 例子:ImageNet,Kinetics
  • 网页爬取和网页抓取
    • 爬取:从互联网索引整个页面
    • 抓取:对特定的网页的特定的数据

Web scraping tools

  • “curl”通常不起作用

    • 网页拥有者有很多办法去阻止机器人访问
  • 用headless,一个没有GUI的浏览器

    1
    2
    3
    4
    5
    6
    7
    8
    from selenium import webdriver

    chrome_options = webdriver.ChromeOptions()
    chrome_options.headless = True
    chrome = webdriver.Chrome(
    chrome_options = chrome_options)

    page = chrome.get(url)
  • 需要大量的新IP

    • AWS有1.75%的IPv4,Azure有0.55%,一个IP就能卖几美元

Craw individual pages

  • 获取页面所以,通过ID得到详细页面,可以用BeautifulSoup

Extract Data

  • 识别网页元素,通过正则抓取
  • 网页抓取不违法
  • 但需要注意
    • 不要爬取敏感数据
    • 不要爬取有版权的信息
  • 咨询律师是否能用于盈利

Summary

  • 网页爬取是在网页没有提供数据api时收集数据收上很有效的办法
  • 使用云可以低成本
  • 在HTML中定位信息