【项目实训】实验七 从Web抓取信息

目录

1.简单爬虫

2.模拟用户操作


1.简单爬虫

实验背景

少数可怕的时候,我没有 Wi-Fi。这时才意识到,我在计算机上所做的事,有多少实际上是在因特网上做的事。完全出于习惯,我会发现自己尝试收邮件、阅读朋友的推特,或回答问题:“在Kurtwood Smith演出 1987 年的机械战警之前,曾经演过主角吗?”

因为计算机上如此多的工作都与因特网有关,所以如果程序能上网就太好了。“Web 抓取”是一个术语,即利用程序下载并处理来自 Web 的内容。例如,Google 运行了许多 web 抓取程序,对网页进行索引,实现它的搜索引擎。在本章中,你将学习几个模块,让在 Python 中抓取网页变得很容易。

推荐第三方库

urlib库:爬虫之祖,用于网络请求,网络异常处理等模块

requests:Python中一个第三方库,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。

Beautiful Soup:用于解析HTML文本,提取特定节点或者属性内容

lxml:python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高

实验步骤

  • 选择一个你喜欢的网页,使用python第三方库对其发起请求

  • 获取网页返回的内容,并从中抽取出你所感兴趣的内容

  • 利用上一章读写文件的知识,将你抽取到的内容保存到本地主机

参考代码

from urllib import request
url = 'https://www.baidu.com'
# 模拟浏览器去爬取内容,主要是为了被反扒
headers = {'user-agent':' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'}
​
try:  
    # 一、使用urllib库爬取目标网页,获取网页本文
    rep = request.Request(url=self.target_url, headers=self.headers)
    resp = request.urlopen(rep)
    html_text = resp.read()
    # 二、提取网页内容
    soup = BeautifulSoup(html_text, 'lxml')
    print(soup.head)  # html head
    print(soup.head.string)  
except urllib.error.URLError as e:  
    if isinstance(e.reason, socket.timeout):  
        print('请求超时')

2.模拟用户操作

实验背景

selenium是网页自动化测试工具,非常适合用于完成网页自动点击以及网络爬虫等。selenium功能框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序,十分适合于网络爬虫。

推荐资料:

Selenium简介:Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。

XPATH:XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

实验步骤

  • 选择一个你喜欢的网页,使用Selenium库对其发起请求

  • 通过XPATH或者其他选择器,定位并抽取出你所感兴趣的内容

  • 利用上一章读写文件的知识,将你抽取到的内容保存到本地主机

实验结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值