爬虫中教你如何给自己喜欢的博主多个文章点赞

每日分享:

生命里的任何刁难都是野蛮游戏

经历了上次刷评论被禁言,系统提示是有恶意评论嫌疑,那总没有恶意点赞和恶意收藏吧,和评论类似,每日点赞也有上限,大概是15个。

注意:webdriver与xpath不同,webdriver不能像xpath那样直接获取属性值,需要用到

get_attribute函数来获取(本人编写代码时遇到的坑,xpath直接整到了属性值,结果一直报错)

在这之前需要先学会爬取博主文章的网址,不会的小伙伴可以去我之前的博客里看:爬虫中教你如何爬取自己喜欢博主所写文章标题及网址icon-default.png?t=LA92https://blog.csdn.net/qq_52262831/article/details/121484065?spm=1001.2014.3001.5502

在这里我们只需要爬取网址就可以了,代码如下:

import requests
from lxml import etree
from selenium import webdriver
i = 1
# 我访问的博主博客一共23页,观察每一页的网址发现前面都一样,就最后的数字不同
for i in range(24):
    url = 'https://yangyongli.blog.csdn.net/article/list/{}'.format(i)

    headers = {
        'user-agent': '改为你的user-agent',
    }

    response = requests.get(url, headers=headers)
    data = response.content
    # 去除注释(浏览器给你的内容会注释很多有用代码)
    data = data.decode().replace('<!--', '').replace('-->', '')
    html = etree.HTML(data)
    # 找到网页中的a标签(包括title和link)
    el_list = html.xpath('//*[@id="articleMeList-blog"]/div[2]/div/h4/a')
    # 输出一页有多少个
    print(len(el_list))
    # 每一页爬取的结果放到列表里
    data_list = []
    for el in el_list:
        data_list.append(el.xpath('./@href')[0])
    # 写入文件中
    f = open('../Data_Abstract/fabulous1.txt', 'a', encoding='utf-8')
    for j in data_list:
        f.write(j+'\n')
    f.close()
    print(data_list)

结果:

1. 在博主文章中抓包,进行点赞操作,找到下面这个包:

 

 2. 经过多次抓包可以发现:同一文章中crticleld是相同的,所以想要对多个文章点赞,我们需要找到articleld来源于哪

 3. 在元素中搜索(ctrl+f),发现可以搜到多处结果,选取容易提取的来提取:(因为其放在value属性中,所以容易提取)

 4. 用webdriver提取:

a = driver.find_element('xpath', '//input[contains(@id,"article_id")]')
ID = a.get_attribute('value')

这两行代码即可提取出来(第二行代码作用是获得其value属性值)

5. 然后就注意,之前抓的包中的url,user-agent,请求类型,用一个cookie保持状态即可。

下面直接上源码:

import requests
from selenium import webdriver
# 将网址放到列表中
url_list = []
# fabulous1.txt为得到的网址
f = open('fabulous1.txt', 'r')
for j in f.readlines():
    url_list.append(j.strip())
    # print(j.strip())
f.close()
for i in range(len(url_list)):
    # 文章的网址
    URL = url_list[i]
    # 响应的网址,抓包中like包的url
    url = 'https://blog.csdn.net//phoenix/web/v1/article/like'
    headers = {
        'user-agent': '替换为你的user-agent值',
        'cookie': '替换为你的cookie值'
    }
    driver = webdriver.Chrome()
    driver.get(URL)
    a = driver.find_element('xpath', '//input[contains(@id,"article_id")]')
    ID = a.get_attribute('value')
    driver.quit()
    # //input[contains(@id,"article_id")]/@value
    data = {
        'articleId': ID
    }
    response = requests.post(url, headers=headers, data=data)
    print(response.content)
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值