为了防止女朋友怼我,我就先用python爬了3600个怼人表情包等她来战!
感谢大家的关心,女朋友今天不再跟我下五子棋了,(被杀了几十盘还被我指出在什么时候明明有机会赢我),就先睡了!按照大家的分析,我觉得我很有可能会被怼。(虽然我们之间没有互怼过)!
毛爷爷教导我们:“不打无准备之仗,不打无把握之仗!”
所以我就要提前屯点怼人表情包!
谈,大门敞开!
打,奉陪到底!
代码如下(这次就3600个,不算过分吧!):
import requests
from lxml import etree
#怼人表情包网址http://www.doutula.com/search?type=photo&more=1&keyword=%E6%80%BC%E4%BA%BA&page=8
#规律一眼就发现是改个数字就行了,就用for i inrange()
for i in range(1,50): #上次给女朋友发了20000句情话,你们说发的太多,所以这次就爬50页,也就50*72=3600个表情包,打败她应该够了,不够再爬
url = "http://www.doutula.com/search?type=photo&more=1&keyword=%E6%80%BC%E4%BA%BA&page=" + str(i) #用数字拼接网址
res = requests.get(url).text #用requests.get()函数获得拼接网址的数据
#print(res) #打印显示一下
res_xpath = etree.HTML(res) #转换为xpath可用的格式
# 用xpath提取表情包的具体网址
bqb_urls = res_xpath.xpath('//*[@id="search-result-page"]/div/div/div/div/div/div/div//img/@data-original')
for bqb_url in bqb_urls: #依次循环提取表情包网址
try:
res = requests.get(bqb_url).content #获得二进制数据
file_name = bqb_url.split('/')[-1] #表情包名字就取网址中的最后一个
with open (file_name, 'wb') as f: #用“wb”模式打开,没有就新建,肯定是需要自动新建的
f.write(res) #将获得的二进制数据写到文件中
except:
pass #3600个,失败几个无所谓的,不在乎
print("表情包爬取完成,准备战斗吧!")
我就等着她来和我战斗!
好期待啊,这次该让她见识见识我情话攻势之后的怼人表情包攻势!
各位朋友们也可以准备一些,这样就能打败女朋友了! 楼主又做梦了,你有女朋友??? 一看ID又是你这个狠人。 创造太阳 发表于 2020-11-25 11:50
这个网站取消了“怼人”的搜索,可以尝试换一下别的关键词。
主要是方法和思路,可以尝试一下其他关键词 ...
找到原因了 打log发现返回的是404 未拿到数据,https请求 我这边模拟浏览器访问可以了import requests,os
from lxml import etree
#怼人表情包网址http://www.doutula.com/search?type=photo&more=1&keyword=%E6%80%BC%E4%BA%BA&page=8
#规律一眼就发现是改个数字就行了,就用for i inrange()
print("正在下载中......")
for i in range(1,50): #上次给女朋友发了20000句情话,你们说发的太多,所以这次就爬50页,也就50*72=3600个表情包,打败她应该够了,不够再爬
url = "https://www.doutula.com/search?type=photo&more=1&keyword=怼人&page=" + str(i) #用数字拼接网址
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/51.0.2704.63 Safari/537.36'}
savepath="D:\\表情图\\"
res = requests.get(url=url, headers=headers).text #用requests.get()函数获得拼接网址的数据
#print(res) #打印显示一下
res_xpath = etree.HTML(res) #转换为xpath可用的格式
# 用xpath提取表情包的具体网址
bqb_urls = res_xpath.xpath('//*[@id="search-result-page"]/div/div/div/div/div/div/div//img/@data-original')
for bqb_url in bqb_urls: #依次循环提取表情包网址
try:
res = requests.get(bqb_url).content #获得二进制数据
file_name = bqb_url.split('/')[-1] #表情包名字就取网址中的最后一个
print(file_name)
if not os.path.exists(savepath):
os.makedirs(savepath)
with open (savepath+file_name, 'wb') as f: #用“wb”模式打开,没有就新建,肯定是需要自动新建的
f.write(res) #将获得的二进制数据写到文件中
except:
pass #3600个,失败几个无所谓的,不在乎
print("第"+str(i)+"页已下载完毕!!!")
print("表情包爬取完成,准备战斗吧!")
不是,我没懂表情包存哪里了{:1_937:} 1ceberg9 发表于 2020-3-7 13:28
bqb_urls = res_xpath.xpath('//*[@id="search-result-page"]/div/div/div/div/div/div/div//img/ ...
审查元素,找到要的信息,右键,复制xpath 李辉! 发表于 2020-3-1 20:07
我缺一个这样子的女朋友,太难了。太羡慕楼主了
卧槽,五姑娘你也缺。。。。:rggrg 女友未至,斗图先行,注孤生的节奏{:1_923:} 怼赢了然后呢{:1_926:} 代码了解了,请问女朋友是你发还是国家发呢 可以啊,我也来学习学习 楼主,你醒醒,你没有女朋友{:1_925:} 狠人,88 请问女朋友在哪领{:301_975:} 醒醒,你和五姑娘在斗图呢