web-scraping开始使用网页抓取


备注

本节概述了Web抓取的内容,以及开发人员可能希望使用它的原因。

它还应该提到网络抓取中的任何大型主题,并链接到相关主题。由于Web抓取文档是新的,您可能需要创建这些相关主题的初始版本。

Python中的Web Scraping(使用BeautifulSoup)

在执行数据科学任务时,通常希望使用互联网上的数据。您通常可以通过应用程序编程接口(API)或其他格式访问此数据。但是,有时您想要的数据只能作为网页的一部分进行访问。在这种情况下,一种称为网络抓取的技术应运而生。
要应用此技术从网页获取数据,我们需要掌握网页结构和网页开发中使用的标签的基本知识(即<html><li><div> 等)。如果您不熟悉Web开发,可以在此处学习。

因此,从网页报废开始,我们将使用一个简单的网站 。我们将使用requests 模块来获取网页内容或源代码。

import requests
page = requests.get("http://dataquestio.github.io/web-scraping-pages/simple.html")
print (page.content) ## shows the source code
 

现在我们将使用bs4模块来废弃内容以获取有用的数据。

from bs4 import BeautifulSoup
soup = BeautifulSoup(page.content, 'html.parser')
print(soup.prettify()) ##shows source in html format
 

您可以在浏览器中使用inspect element 工具找到所需的标签。现在假设您要获取使用<li> 标签存储的所有数据。然后您可以使用脚本找到它

soup.find_all('li')
# you can also find all the list items with class='ABC'
# soup.find_all('p', class_='ABC')
# OR all elements with class='ABC'
# soup.find_all(class_="ABC")
# OR all the elements with class='ABC'
# soup.find_all(id="XYZ")
 

然后,您可以使用标记获取文本

for i in range(len(soup.find_all('li'))):
    print (soup.find_all('li')[i].get_text())
 

整个脚本很小很简单。

import requests
from bs4 import BeautifulSoup

page = requests.get("http://dataquestio.github.io/web-scraping-pages/simple.html") #get the page
soup = BeautifulSoup(page.content, 'html.parser') # parse according to html
soup.find_all('li') #find required tags

for i in range(len(soup.find_all('li'))):
    print (soup.find_all('li')[i].get_text())