• 售前

  • 售后

热门帖子
入门百科

python 多线程爬取壁纸网站的示例

[复制链接]
几器那午 显示全部楼层 发表于 2021-10-25 19:22:39 |阅读模式 打印 上一主题 下一主题
目次


  • 根本开发情况
  • 必要导入的库
  • 目的网页分析
  • 整体思路:
  • 代码实现

根本开发情况

· Python 3.6
· Pycharm

必要导入的库



目的网页分析


网站是静态网站,没有加密,可以直接爬取




整体思路:

1、先在列表页面获取每张壁纸的详情页地点
2、在壁纸详情页面获取壁纸真实高清url地点
3、保存地点

代码实现

模拟欣赏器请哀求网页,获取网页数据

这里只选择爬取前10页的数据
代码如下
  1. import threading
  2. import parsel
  3. import requests
  4. def get_html(html_url):
  5. '''
  6. 获取网页源代码
  7. :param html_url: 网页url
  8. :return:
  9. '''
  10. response = requests.get(url=html_url, headers=headers)
  11. return response
  12. def get_par(html_data):
  13. '''
  14. 把 response.text 转换成 selector 对象 解析提取数据
  15. :param html_data: response.text
  16. :return: selector 对象
  17. '''
  18. selector = parsel.Selector(html_data)
  19. return selector
  20. def download(img_url, title):
  21. '''
  22. 保存数据
  23. :param img_url: 图片地址
  24. :param title: 图片标题
  25. :return:
  26. '''
  27. content = get_html(img_url).content
  28. path = '壁纸\\' + title + '.jpg'
  29. with open(path, mode='wb') as f:
  30.   f.write(content)
  31.   print('正在保存', title)
  32. def main(url):
  33. '''
  34. 主函数
  35. :param url: 列表页面 url
  36. :return:
  37. '''
  38. html_data = get_html(url).text
  39. selector = get_par(html_data)
  40. lis = selector.css('.wb_listbox div dl dd a::attr(href)').getall()
  41. for li in lis:
  42.   img_data = get_html(li).text
  43.   img_selector = get_par(img_data)
  44.   img_url = img_selector.css('.wb_showpic_main img::attr(src)').get()
  45.   title = img_selector.css('.wb_pictitle::text').get().strip()
  46.   download(img_url, title)
  47. end_time = time.time() - s_time
  48. print(end_time)
  49. if __name__ == '__main__':
  50. for page in range(1, 11):
  51.   url = 'http://www.deskbizhi.com/min/list-{}.html'.format(page)
  52.   main_thread = threading.Thread(target=main, args=(url,))
  53.   main_thread.start()
复制代码
以上就是python 多线程爬取壁纸网站的示例的详细内容,更多关于python 爬取壁纸网站的资料请关注草根技术分享别的相干文章!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作