当前位置: 首页 > 网络应用技术

Python Crawler实现了突破性百度库限制(附件源代码实例)

时间:2023-03-05 20:28:06 网络应用技术

  网站:百度图书馆

  开发工具:Pycharm开发环境:Python3.7,Windows10工具包:请求,RE

  查找您需要的自由图书馆信息。本文主要介绍如何处理复制限制的问题

  在进行搜寻器项目之前,您必须首先了解数据的来源和数据的加载方法。当前,将加载数据获得的数据。

  JSON文件保存的数据中的数据在找到数据资源地址后找到目标数据后找到目标数据。

  通过从文章页面的“文章”页面中提取数据,通过数据通过数据搜索数据来查找数据源。

  将网络请求发送到文章的主页,以定期提取所有数据下载地址

  需要取出相应数据的订阅,所有文章数据源地址再次发送信息段数据发送请求,以通过常规方式获取相应的JSON数据。因此,与C密钥相对应的值

  格式可以自己调整并最终保存数据

  导入请求

  导入

  导入JSON

  wenku类():

  def __init __(自我):

  self.session = requests.session()

  def get_url(SELD):

  url =“ https://wenku.baidu.com/view/23de0cea793e0912a2a2161479171711cc7930b7778d4.html”

  标题= {{{

  'Accept':'text/html,application/xhtml+xml,application/xml;q = 0.9,image/avif,image/webp,image/apng,*/*;Q = 0.8,应用程序/签名-EAX = B3;Q = 0.9',

  “接受 - 输入,放气,br',

  “接受语言”:'zh-cn,zh;Q = 0.9',

  'cache-control':'max-age = 0',

  “连接”:“保持现象”,

  “主持人”:'wenku.baidu.com',

  “ secate-ftch-bess”:“文档”,

  'sec-fitch mode':“导航”,

  'secate-ftch site':“ same-origin”,

  'sec-fetch-user':'?1',,

  '升级 - 不必要的重新要求':'1',

  '用户代理':'Mozilla/5.0(Windows NT 10.0; Win64; X64)AppleWebkit/537.36(Khtml,像Gecko一样)Chrome/86.0.4240.75 Safari/537.36''

  }

  响应= seld.session.get(url = url,标题=标题)

  json_data = re.findall('“ json”:(。

  json_data = json.loads(json_data)

  #print(json_data)

  对于索引,枚举(json_data)中的page_load_urls:

  #print(page_load_urls)

  pay_load_url = page_load_urls ['pageloadurl']

  #打印(索引)

  self.get_data(index,page_load_url)

  def get_data(SELD,索引,URL):

  标题= {{{

  'Accept':'text/html,application/xhtml+xml,application/xml;q = 0.9,image/avif,image/webp,image/apng,*/*;Q = 0.8,应用程序/签名-EAX = B3;Q = 0.9',

  “接受 - 输入,放气,br',

  “接受语言”:'zh-cn,zh;Q = 0.9',

  'cache-control':'max-age = 0',

  “连接”:“保持现象”,

  “主机”:'wkbjcloudbos.bdimg.com',

  “ secate-ftch-bess”:“文档”,

  'sec-fitch mode':“导航”,

  'secate-ftch site':'无',

  'sec-fetch-user':'?1',,

  '升级 - 不必要的重新要求':'1',

  '用户代理':'Mozilla/5.0(Windows NT 10.0; Win64; X64)AppleWebkit/537.36(Khtml,像Gecko一样)Chrome/86.0.4240.75 Safari/537.36''

  }

  响应= seld.session.get(url = url,标题=标题)

  #print(response.content.decode('unicode_escape'))

  data = wendmes.content.decode('unicode_escape')

  comand ='wenku_' + str(索引 + 1)

  json_data = re.findall(comand +“((。*?}}))”,data)[0] [0]

  #print(json_data)

  json_data = json.loads(json_data)

  结果= []

  因为我在json_data ['hody']中:

  data = i [c“]

  #打印(数据)

  result.append(数据)

  打印(''。join(result).ruplace('','

  ')))

  以F:

  f.write(''。join(result).ruplace(“”,'

  ')))

  如果__name__ =='__ main __':

  wk = wenku()

  wk.get_url()

  我是白色和白色,我喜欢分享知识??