Python网络爬虫项目式教程 课后习题及答案 钱游 项目四_第1页
Python网络爬虫项目式教程 课后习题及答案 钱游 项目四_第2页
Python网络爬虫项目式教程 课后习题及答案 钱游 项目四_第3页
Python网络爬虫项目式教程 课后习题及答案 钱游 项目四_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复习题一、单项选择题1、下面有关Requests库说法不正确的是(D)A、Requests是Python的一个HTTP请求库B、在Windows下安装可以使用命令“pipinstallrequests”C、在Linux下安装可以使用命令“sudopipinstallrequests”D、Requests库的GET请求不能携带参数(D)2、假定响应对象为r,关于Requests库通过以下方法获取响应内容不正确的是(D)A、r.status_code表示响应转态码B、r.raw表示原始响应体,使用r.raw.read()读取C、r.text表示字符串方式的响应体,会自动根据响应头部的字符编码进行解码。D、r.url表示获取网页中的所有网址二、判断题1、通用网络爬虫常用串行工作方式。(错)2、需要登录的网站一般通过GET请求就可以实现登录。(错)3、代理中间件的可用代理列表一定要写在setting.py中。(错)4、所有的异步加载都会向后台发送请求。(错)5、requests中get请求方法的使用为requests.get(url).(对)三、编程题1、使用requests请求框架和BeautifulSoup解析框架,爬取以下Url变量所指定的网页,获取其网页的标题和新闻内容。Url=/zwxx_176/bmdt/202104/t20210406_9072956.html”参考代码:#1.利用requests.get(url)获取网页页面的html文件

importrequests

newsurl='/zwxx_176/bmdt/202104/t20210406_9072956.html'

res=requests.get(newsurl)

res.encoding='utf_8'

print(res)

#2.利用BeautifulSoup的HTML解析器,生成结构树

frombs4importBeautifulSoup

soup=BeautifulSoup(res.text,'html.parser')

#3.找出特定标签的html元素

print(soup.p)#标签名,返回第一个

#打印网页的头部区域

print("打印网页的头部区域start")

print(soup.head)

print("打印网页的头部区域end")

#4.获取网页的标题、新闻内容

print("新闻的标题是:")

title=soup.select('.tit')[0].text#返回的是是一个列表对象,使用小标0进行获取,然后获取文字内容,使用了".text"方法

print(title)

print("新闻的内容是:")

content=soup.select('.view')[0].text

print(content)2、使用Xpath实现图书信息的爬取,网址为:/。要求:(1)爬取的图书的字段有:书名、价格和评分。(2)使用XPath将所有页的图书信息全部爬取下来。(3)将数据保存于文件中(推荐使用csv文件)。参考代码:importrequests

fromlxmlimporthtml

importcsv

base_url='/catalogue/'

pages=[base_url+str(i)+'.html'foriinrange(2,52)]

books=[]

forpageinpages:

page_source=requests.get(page).content.decode()

selector=html.fromstring(page_source)

titles=selector.xpath('//*[@id="default"]/div/div/div/div/section/div[2]/ol/li/article/h3/a/text()')

prices=selector.xpath('//*[@id="default"]/div/div/div/div/section/div[2]/ol/li/article/div[2]/p[1]/text()')

prices=[e[1:]foreinprices]

rating=selector.xpath('//*[@id="default"]/div/div/div/div/section/div[2]/ol/li/article/p/@class')

rating=[e.split('')[1]foreinrating]

foriinrange(len(prices)):

books.append((titles[i],prices[i],rating[i]))

print(books)

withopen("books.csv","w+")asf:

writer=csv.writer(f)

writer.writerow(('book_name','price','rating'))

writer.writerows(books)

print("处理完成")3、使用requests_html模块请求网页,请求的url地址如下,将指定网页中中的所有超练级打印输出到控制台。参考代码:URL=”/html/gndy/oumei/index.html”fromrequests_htmlimportHTMLSession

headers={

'user-agent':'Mozilla/5.0(WindowsNT6.1;WOW64)'

}

session=HTMLSession()

resp=session.get('/html/gndy/oumei/index.html')

resp.encoding="utf-8"

link=re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论