Python利用gevent协程和xpath正则表达式来爬取某一网站的图片

python 专栏收录该内容
54 篇文章 0 订阅

爬虫爬取某一网站的图片,看其效果 

import urllib.request
import gevent,time
from gevent import monkey
from lxml import etree


monkey.patch_all() #替换,将普通模块中的方法换为gevent中的方法
res = urllib.request.urlopen('https://www.tupianzj.com/meinv/mm/')
txt = res.read() #将html格式的网页赋值为txt
html = etree.HTML(str(txt))  #etree.HTML()方法只能分析字符串,即String
lis = html.xpath("//div[@id='container']//li//img/@src")   #选择img标签中的src属性

def work(x):
    #img_connection = urllib.request.urlopen("https://img.tupianzj.com/uploads/200514/9-200514094339638.jpg")
    #for i in range():
    img_connection = urllib.request.urlopen(lis[x])  #协程,按序打开列表中的网页
    fd = open('%d.jpg'% x,'wb')
    fd.write(img_connection.read())
    fd.close()

#img_fd = img_connection.read()

list2 = list()
for x in range(33):
    g1 = gevent.spawn(work,x) #spawn即生成函数,带入方法,方法中的参数
    list2.append(g1)

gevent.joinall(list2)  #joinall(),回收列表中的协程


运行效果: 

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值