暑期的Python爬虫课要求做出一个爬虫,正好挂到何大佬的网站上露个头
必应壁纸(.cn)好用但是一直没有搜索功能,这次用爬虫简单做了一个搜索功能,根据关键字来打印对应的链接,然后进入链接使用必应的下载即可
下面直接粘上初学者代码…
其中:requests库需要用户在cmd窗口下 pip install requests 安装;re(正则表达式库)已经包含在python3里
#抓取必应壁纸主页的内容
import requests
import re
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
#使用Headers来进行伪装,否则直接用爬虫访问必应壁纸会出现403禁止访问
strr="" #空列表准备储存符合条件的链接
print("请输入查询词:")
sear=input() #这里输入查询词
for i in range(1,33): #这里range是查询范围,可以根据需要来修改,这里是查询1-32个网页
if(i==1):
r = requests.get('https://bing.ioliu.cn/',headers=headers)
else:
string='https://bing.ioliu.cn/'+'?p='+str(i)
print(string)
r=requests.get(string,headers=headers)
type(r)
r.status_code
r.encoding
r.encoding='utf-8'
r.apparent_encoding
r.encoding = r.apparent_encoding
#这里是一系列的将目标网页编码转utf-8的操作
p_info = '<div class="card progressive">(.*?)</h3>'
info=re.findall(p_info, r.text, re.S) #抓取图片描述前后的链接,过滤掉网页其他部分的HTML文本
inhr=[]
for ins in info:
if(sear in ins): #这里以大象为例,采集大象的壁纸
print(ins)
print('\n')
p_href='href="(.*?)"' #这个正则表达式则提取真正的图片链接
inhr=re.findall(p_href,ins)
print(inhr)
print('\n')
for inh in inhr:
x=0
strr+='https://bing.ioliu.cn'+inhr[0]+'\n' #将所有的链接拼接在一起
x=x+1
print(' ')
print(' ')
print('查询链接如下:')
print(strr) #打印链接
python对缩进要求实在是太高了,还好VS-code有舒服的自动对齐,但是暑期是用jupyternotebook讲的,VS-code的jupyter插件没有对齐竖线,还挺麻烦的…但是jupyter的编排也是真的舒服…
wow666,这就去爬P站
http://cloud.sdu.edu.cn 使用学校提供的免费云超算运行juypter貌似十分的方便,什么都不用下载…
这个要怎么登陆啊,好像登不了
点击二维码下面那个Scan RCode to login就出来学校那个统一认证平台了