某农业学校python(九)

实验4.5requests爬取文本

题目描述:利用爬虫库requests、正则表达式解析库re和纯文本txt完成编程任务,任务是爬取豆瓣排行榜的电影名称。本爬虫实验分为三个步骤:

(1)第一步数据爬取,通过requests爬取豆瓣排行榜的电影名称数据;本步骤实验说明如下:

爬取网址url=”https://movie.douban.com/chart”

浏览器用户代理”User-Agent”:”Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.39”

说明:不同机器安装的浏览器用户代理也不一样,需要打开网址后,通过F12键打开开发工具查看URL和User-Agent。

(2)第二步数据解析,通过正则表达式re解析豆瓣排行榜的电影名称数据;

本步骤解析数据参考正则表达式是:re.compile(’<a.*?nbg.*?title=”(.*?)”>’,re.S)

(3)第三步存储数据,通过纯文本存储豆瓣排行榜的电影名称数据。实验效果如图5所示。

                                                 

                                                                     图5

import requests
import re
#数据爬取
url="https://movie.douban.com/chart"
headers = {'User-Agent':
               'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' + \
               'AppleWebKit/537.36 (KHTML, like Gecko) ' + \
               'Chrome/99.0.4844.51 ' +\
               'Safari/537.36 ' + \
               'Edg/99.0.1150.39' }

response = requests.get(url=url,headers=headers)
#print(response)
text1 = response.text
#print(text1)

#数据解析
temp = re.compile('<a.*?nbg.*?title="(.*?)">',re.S)
count = re.findall(temp,text1)
#compile()与findall()一起使用,返回一个列表。
#print(count)

with open("douban.txt",'w',encoding='utf-8') as f:
    for i in count:
       f.write(i+'\n')

实验4.6requests爬取图片

题目描述:利用爬虫库requests、html提取库beautifulsoup4(简称bs4)、html解析库lxml和urllib库完成编程任务,任务是爬取wallhaven网站上的壁纸图片。

(1)第一步数据爬取,通过requests爬取wallhaven的html数据;本步骤实验说明如下:

爬取网址url=”https://wallhaven.cc/search?q=id:711&sorting=random&ref=fp”

浏览器用户代理”User-Agent”:”Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Mobile Safari/537.36”

说明:不同机器安装的浏览器用户代理也不一样,需要打开网址后,通过F12键打开开发工具查看URL和User-Agent。

(2)第二步数据解析,通过html提取库beautifulsoup4和html解析库lxml提取并解析wallhaven的html数据,本步骤提取并解析数据参考方法是:

res=requests.get(url,headers=headers)

html=res.text

info=BeautifulSoup(html,”lxml”)

data=info.select(”#thumbs > section > ul > li > figure > img”)

(3)第三步存储数据,通过目录./spider_picture存储wallhaven网站上的壁纸图片。实验效果如图6所示。

                  

图6

import requests
import urllib
import lxml
from bs4 import BeautifulSoup

url = 'https://wallhaven.cc/search?q=id:711&sorting=random&ref=fp'
header = {"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Mobile Safari/537.36"}
response = requests.get(url=url,headers=header)
html = response.text
info = BeautifulSoup(html,"lxml")
data = info.select("#thumbs > section > ul > li > figure > img")
#print(data)
list1 = []
for i in data:
    list1.append(i.get("data-src"))
for j in list1:
    pictureurl = j#j是网址
    name = pictureurl.split("/")[-1]#name是最后的图片属性
    response = requests.get(url=pictureurl,headers=header)
    with open("./%s"%name, "wb") as f:
        f.write(response.content)#按名称进行输出

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值