必应壁纸的搜索功能–Python写的简单爬虫

暑期的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的编排也是真的舒服…

《必应壁纸的搜索功能–Python写的简单爬虫》有4个想法

发表评论