Python网络爬虫项目式教程 课后习题及答案 钱游 项目五_第1页
Python网络爬虫项目式教程 课后习题及答案 钱游 项目五_第2页
Python网络爬虫项目式教程 课后习题及答案 钱游 项目五_第3页
Python网络爬虫项目式教程 课后习题及答案 钱游 项目五_第4页
Python网络爬虫项目式教程 课后习题及答案 钱游 项目五_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

复习题一、单项选择题1、下面有关Selenium库说法不正确的是(D)A、Selenium支持Chrome等常见浏览器。B、使用Selenium库需要使用命令fromseleniumimportwebdriver。C、chromedriver的版本与Chrome浏览器版本有对应关系。D、以上说法均错误。2、目前验证码的类型有(D)A、单击式验证码B、图形验证码C、滑动验证码D、以上都是二、判断题1、Selenium是一个用于网站应用程序自动化的工具,他可以直接运行在浏览器中。(对)2、安装Selenium可以使用pipinstallselenium命令来完成(对)3、Selenium可以模拟单击、右击操作,但是不能模拟文本输入操作。(错)4、Selenium支持通过id和name属性来查找元素(对)5、使用Selenium库必须安装配置GoogleChrome的WebDriver。(错)三、编程题1.请使用Selenium对对中国站长站素材栏目(/tupian/)的图片进行爬取。参考代码:importurllib.parse

importurllib.request

frombs4importBeautifulSoup

importtime

importos

defhandle_request(url,page):

headers={

'User-Agent':'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/74.0.3729.131Safari/537.36',

}

#由于第一页和后面页码规律不一致,所以要进行判断

ifpage==1:

url=url.format('')

else:

url=url.format('_'+str(page))

#print(url)

request=urllib.request.Request(url,headers=headers)

#网站图片是使用懒加载,必须要延时

response=urllib.request.urlopen(request,timeout=8).read().decode()

returnresponse

defdownload_image(image_src):

dirpath='mygudian'

#创建一个文件夹

print(os.path.exists(dirpath))

ifnotos.path.exists(dirpath):

os.mkdir(dirpath)

#创建文件名

filename=os.path.basename(image_src)

#图片路径

filepath=os.path.join(dirpath,filename)

#发送请求,保存图片

headers={

'User-Agent':'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/74.0.3729.131Safari/537.36',

}

request=urllib.request.Request(url=image_src,headers=headers)

response=urllib.request.urlopen(request)

withopen(filepath,'wb')asfp:

fp.write(response.read())

defparse_content(content):

#生成对象

image_list=[]

soup=BeautifulSoup(content,'lxml')

result=soup.find_all('img',attrs={'class':'lazy'})

forvalueinresult:

pic_url="https:"+value.attrs['data-original']

image_list.append(pic_url)

print(image_list)

#遍历列表,依次下载图片

forimage_srcinimage_list:

download_image(image_src)

defmain():

url='/tupian/index{}.html'

#/tupian/gudianmeinvtupian_2.html

start_page=int(input("请输入开始页码:"))

end_page=int(input("请输入结束页码:"))

forpageinrange(start_page,end_page+1):

print("第%s页开始下载······"%page)

content=handle_request(url,page)

#解析内容

parse_content(content)

time.sleep(2)

print("第%s页下载完毕······"%page)

print("下载完成!")

if__name__=="__main__":

main()2.请使用Selenium爬虫对QQ音乐进行爬取。fromseleniumimportwebdriver

frommon.byimportBy

fromselenium.webdriver.support.uiimportWebDriverWait

importpandasaspd

importtime

browser=webdriver.Chrome()

wait=WebDriverWait(browser,20)

browser.get('/n/ryqq/toplist/5')

rank=[]

name=[]

singer=[]

defget_page():

forninrange(1,21):

rank.append(browser.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[2]/div[3]/ul[2]/li[%s'%n+']/div/div[1]').text)

name.append(browser.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[2]/div[3]/ul[2]/li[%s'%n+']/div/div[3]/span/a[2]').text)

singer.append(browser.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/div[2]/div[3]/ul[2]/li[%s'%n+']/div/div[4]/a').text)

#print(rank)

browser.find_element(By.XPATH,'//*[@id="app"]/div/div[2

温馨提示

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

评论

0/150

提交评论