小白爬虫代码走进百度文库(附详细爬坑过程)

小白爬虫代码走进百度文库(附详细爬坑过程)

晚上好! 楼主在电气工作中经常会用到这款接地寻找仪,但苦于没有相关的教程,打算在网上下一篇教学PPT,这次使用 requests,re,os 来练练手。如果你刚刚学爬虫, 可以仔细阅读这篇文章。。。

确定要抓的对象

import requests,bs4,re
'''wb=requests.get('https://wenku.baidu.com/view/eb50e11f7375a417866f8f9d.html').content.decode('GBK')
print(wb)
#通过下图直接获得编码,此时wb 是一个requests对象,上面包含页面源代码
usernamelist=re.findall('https://wkretype.bdimg.com/retype/zoom/(.*?)',wb,re.S)
print(usernamelist)'''
#废话不说,根据图片连接直接找图片连接,结果usernamelist等于空,也就是页面源代码上面没有我们要找的图片连接

小白爬虫代码走进百度文库(附详细爬坑过程)_第1张图片直到我找到了六月皮卡丘的文章,在此感谢,附上连接

小白爬虫代码走进百度文库(附详细爬坑过程)_第2张图片点击进取获得jquery文件,发现我们要找的‘https://wkretype.bdimg.com/retype/zoom/XXX’之类的图片连接就在其中

jQuery110106387704123584015_1588165599118({"list":[{"zoom":"https:\/\/wkretype.bdimg.com\/retype\/zoom\/29d5c5aa284ac850ad02421b?pn=1&o=jpg_6&md5sum=2fe3f0f0a8f38cf741d3c86a80828686&sign=e1753a641f&png=0-102470&jpg=0-162020","page":1},{"zoom":"https:\/\/wkretype.bdimg.com\/retype\/zoom\/29d5c5aa284ac850ad02421b?pn=2&o=jpg_6&md5sum=2fe3f0f0a8f38cf741d3c86a80828686&sign=e1753a641f&png=102471-167356&jpg=162021-314835","page":2},{"zoom":"https:\/\/wkretype.bdimg.com\/retype\/zoom\/29d5c5aa284ac850ad02421b?pn=3&o=jpg_6&md5sum=2fe3f0f0a8f38cf741d3c86a80828686&sign=e1753a641f&png=16。。。。#此处省略

马上用上刚刚学好的re,抓出来。文件编码是通过页面信息可以获得

comments = requests.get('https://wenku.baidu.com/browse/getbcsurl?doc_id=eb50e11f7375a417866f8f9d&pn=1&rn=99999&type=ppt&callback=jQuery11010024750152178876772_1587297744033&_=1587297744034').content.decode('windows-1252')
newpatter=re.compile('"zoom":"(.*?)"')
srcadress=re.findall(newpatter,comments)
print(srcadress)

新的改变把图片的地址装入列表对象(出现问题无法正确转义\)

出现了这个代码,提示你无法正常解析文件,仔细一看
这篇文章给了我启示

raise InvalidURL(*e.args)
requests.exceptions.InvalidURL: Failed to parse: https:\

出现了这个代码,提示你无法正常解析文件,仔细一看srcdress中图片地址链接为https:\/\/wkretype.bdimg.com\/retype\/zoom\/29d5c5aa284ac850ad02421b?pn。。。导致无法连接,解决方法如下

import requests
bbb=r'dfsf.?\\\/////sda'
print(bbb)
print('https:\\/\\/wkretype.bdimg.com\\/retype\\/zoom\\/29d5c5aa284ac850ad02421b?pn=28&o=jpg_6&md5sum=2fe3f0f0a8f38cf741d3c86a80828686&sign=e1753a641f&png=2062803-&jpg=3568745-')
vvv=re.sub(r'\\','','https:\\/\\/wkretype.bdimg.com\\/retype\\/zoom\\/29d5c5aa284ac850ad02421b?pn=28&o=jpg_6&md5sum=2fe3f0f0a8f38cf741d3c86a80828686&sign=e1753a641f&png=2062803-&jpg=3568745-')
print(r'www.python.org')
print(vvv)

通过上面的代码把地址最终解析了出来,把所用的src图片地质入库进入srcadress列表中

新改变文件夹的地址

# import os
# print(os.getcwd())
# os.chdir('./linshi')

新进行文件批量书写

for i in range(len(srcadress)):
    vvv=re.sub(r'\\','',srcadress[i])
    #在遍历函数的时候删除不喜欢的\符号
    r = requests.get(vvv).content
    with open('./{}+{}'.format('jpg.asdwqe',i),'wb')as f:
        f.write(r)  # 将内容写入图片
        f.close()
    print(i)

小白爬虫代码走进百度文库(附详细爬坑过程)_第3张图片

参考文件
re内容
sub函数
linux下的目录管理
图片下载指南

你可能感兴趣的:(小白爬虫代码走进百度文库(附详细爬坑过程))