早期的网站都是静态页面,有些静态页面非常容易抓取。新手可以试试。爬行动物如何抓取静态网页?让我们一起了解一下。
在实际工作中,不可避免地要满足从网页上抓取数据信息的需求,比如从官网上抓取最新的系统版本。显然,这是网络爬虫的工作。所谓网络爬虫,就是需要模拟一个浏览器,向网络服务器发送一个请求,以便从网络流中读取网络资源,保存在本地,对这些信息做一些简单的提取,将我们想要的信息进行分离提取。
用ip模拟器替代IP软件的工程师表示,在做网络爬虫工作时,会发现并不是所有的网站都是一样的,比如有的网站是静态页面,有的需要登录才能获取关键信息。此外,python简单而强大,并且有许多第三方库使我们可以轻松地在浏览器中获得所看到的内容。
例如,美丽的图书馆可以很容易地找到我们需要的信息。当然,有时正则表达式可以帮助我们更快地从网页中提取我们需要的信息。
首先,我们导入我们需要的请求和bs4模块,然后向目标url发送get请求以获取主页的html文档。具体如下:
导入请求
来自bs4导入美丽组
标题= { 0
用户代理“:”Mozilla/5.0(Windows NT 10.0;Win64x64)applebwebkit/537.36(KHTML,像Gecko)Chrome/65 . 0 . 3325 . 146 Safari/537.36’
}
网址= ' https://voice.hupu.com/nba' #虎扑NBA新闻。
res = requests.get(url,headers = headers)
我们的目的是提取新闻的标题和来源,所以下一步是分析新闻主页的DOM结构。给新闻主页截图如下:
红线是我们想要抓取的信息。通过chrome控制台分析DOM结构。结果如下:
从特殊到一般的思路搜索,分析一条新闻信息,找出所有新闻的共性。通过分析发现,我们需要的标题信息是一个A标签对应的内容,然后需要向上搜索。可以看到,标题信息的上层是h4标签,h4标签的上层是类属性值为list-hd的div标签,这个div的上层是li标签。通过同样的方式分析源信息,我们发现新闻标题信息和新闻源信息都在一个li标签下。此外,我们可以发现其他新闻信息都在这种li标签下,这些li标签都在类属性值为news-list的div标签下,整个文档中只有一个类属性值为news-list的div标签。
因此,我们可以从这个div开始,找到这个标签下的每个li标签,并遍历每个li标签。每个li标签下都有一个唯一的h4标签,这个标签的文本就是我们要找的标题信息。此外,在每个li标签下,只有一个span标签,其类属性值为comeFrom,span标签下的a标签对应的文本就是源信息。经过分析,我们可以通过bs4提取信息。