如何使用selenium爬取表情包
本篇内容主要讲解“如何使用selenium爬取表情包”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用selenium爬取表情包”吧!
成都创新互联主要从事成都网站设计、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务开平,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
https://www.doutula.com/photo/list/?page=1
不过这个网站直接requests请求不到内容,应该也是js加载的。所以最简单的办法就是使用selenium,万能!
该网站的结构
如果是gif,会多出一个img标签
根据此来写出xpath,拿出图片的地址,使用urllib进行下载
下载完成后保存。然后在通过wxpy库,发送给好友或者群。
具体代码
使用selenium获取表情包,并保存到文件中。注意保存的时候文件名最好是英文或者数字,否则当你使用wxpy库模拟发送的时候,会直接报错。
def get_doutu():
browser = webdriver.Chrome()
# img_url_dic = {}
for i in range(1, 2):
browser.get('https://www.doutula.com/photo/list/?page=%s' % str(i))
time.sleep(4)
eles = browser.find_elements_by_xpath('//div[@class="container_"]/div[@id="pic-detail"]/div[@class="row"]/div[@class="col-sm-9"]/div[@class="random_picture"]/ul[@class="list-group"]/li[@class="list-group-item"]/div[@class="page-content text-center"]/div/a[@class="col-xs-6 col-sm-3"]/img[@data-original]')
# names = browser.find_elements_by_xpath('//div[@class="container_"]/div[@id="pic-detail"]/div[@class="row"]/div[@class="col-sm-9"]/div[@class="random_picture"]/ul[@class="list-group"]/li[@class="list-group-item"]/div[@class="page-content text-center"]/div/a[@class="col-xs-6 col-sm-3"]/img[@data-original]')
for j in range(len(eles)):
url = eles[j].get_attribute('data-original')
url = url.split('!')[0]
ext = url.split('.')[-1]
name = random.randrange(1, 10000, 2)
filename = str(name) + '.' + ext
# 保存图片数据
data = urllib.request.urlopen(url).read()
f = open('image/' + filename, 'wb')
f.write(data)
f.close()
time.sleep(5)
browser.close()
browser.quit()
获取文件列表,打印是为了充数,将文件的地址拼接好,发送给send_news(),由它进行发送。
def listdir(file_dir):
for root, dirs, files in os.walk(file_dir):
print(root) # 当前目录路径
print(dirs) # 当前路径下所有子目录
print(files) # 当前路径下所有非目录子文件
print(type(files))
for i in files:
send_news(file_dir + i)
time.sleep(10)
到入wxpy包,登录微信并发送
def login_wechat():
global bot
bot = Bot()
# bot = Bot(console_qr=2,cache_path="botoo.pkl")#linux环境上使用
def send_news(data):
if bot == None:
login_wechat()
try:
my_group = bot.groups().search(u'逗比四人行')[0]
time.sleep(20)
print(data)
my_group.send_image(data)
except Exception as e:
print(u"失败!!", e)
最好设置间隔时间。小心被清理。
到此,相信大家对“如何使用selenium爬取表情包”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
当前文章:如何使用selenium爬取表情包
URL网址:http://azwzsj.com/article/gcdcei.html