找回密码
  注册[Register]
查看: 691|回复: 6

[python] 【Python】爬虫(Xpath):批量爬取站长免费简历

  [复制链接]
发表于 2020-8-15 14:25 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。


话不多说吧  直接上,判定有点少,不要写0  也不要超过所提示的页数

  1. from lxml import etree
  2. import requests
  3. import os

  4. #封装解析下载函数
  5. def cv_down(cv_href, headers):
  6.     for href in cv_href:
  7.         act_response = requests.get(url=href, headers=headers).text
  8.         act_tree = etree.HTML(act_response)
  9.         cv_title = act_tree.xpath('//div[@class="ppt_tit clearfix"]/h1/text()')
  10.         cv_title = cv_title[0].encode('ISO-8859-1').decode('utf-8') + '.rar'
  11.         dow_url = act_tree.xpath('//div[@class="clearfix mt20 downlist"]/ul/li[1]/a/@href')[0]
  12.         doc = requests.get(url=dow_url, headers=headers).content
  13.         cv_path = './免费简历/' + cv_title
  14.         with open(cv_path, 'wb') as fp:
  15.             fp.write(doc)
  16.             print(cv_title, '下载完成!!!')

  17. #检查文件夹是否存在,并创建文件夹
  18. if not os.path.exists('./免费简历'):
  19.     os.mkdir('./免费简历')

  20. first_page_url = 'http://sc.chinaz.com/jianli/free.html'
  21. headers = {
  22.     "User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'
  23. }

  24. tree = etree.HTML(requests.get(url=first_page_url, headers=headers).text)
  25. page_limit = tree.xpath('//div[@class="pagination fr clearfix clear"]/a[8]/b/text()')


  26. print(page_limit[0] + " pages at most")
  27. page = input("Please enter how many page you want: " )

  28. if page.isdigit():
  29.     if int(page) == 1 :
  30.         cv_href = tree.xpath('//div[@class="sc_warp  mt20"]/div/div/div/a/@href')
  31.         cv_down(cv_href, headers)

  32.     else:
  33.         for i in range(1, int(page)+1):
  34.             if i == 1:
  35.                 cv_href = tree.xpath('//div[@class="sc_warp  mt20"]/div/div/div/a/@href')
  36.                 cv_down(cv_href, headers)
  37.             else:
  38.                 other_page_url = 'http://sc.chinaz.com/jianli/free_' + str(i) + '.html' #一页以上的特殊性需要重新制定链接
  39.                 response = requests.get(url=other_page_url, headers=headers).text
  40.                 tree = etree.HTML(response)
  41.                 cv_href = tree.xpath('//div[@class="sc_warp  mt20"]/div/div/div/a/@href')
  42.                 cv_down(cv_href, headers)

  43. else:
  44.     print("You can only enter numbers!!!")
复制代码


如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2020-8-15 14:25 | 显示全部楼层
谢谢大牛
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-15 14:38 | 显示全部楼层
6666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-15 15:12 | 显示全部楼层
谢谢大佬
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-15 19:42 来自手机 | 显示全部楼层
感谢大佬分享,大牛因有你而更精彩。
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-16 03:05 | 显示全部楼层
感谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-16 05:15 | 显示全部楼层
6666666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|广告投放|大牛论坛

GMT+8, 2024-5-13 16:04 , Processed in 0.041938 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表