小🍠红书爬虫真的不难
**
在这个互联网高速发展的时代,数据已经越来越被更多人需要。
小🍠红书,知乎,抖音,视频号已经是主流。
学好一个爬虫,为自己的笔记或者视频来分析数据和流量吧
**
**
大家来看看我写的爬虫吧(不要复杂,要以结果为导向)
**
今天使用的是DrissionPage包,今天不谈selenium
今天就简单获取下小红书 根据关键词获取每个笔记下面的图片和点赞收藏等数据吧
首先打开小红书
from DrissionPage import ChromiumPage
ch = ChromiumPage()
ch.get("https://www.xiaohongshu.com/explore")
打开后发现会让登录小红书,这时候不要担心,我们拿出手机扫一扫,不要想太多去破解登录什么的 用最简单的方法去解决
这是登录完的场景
接下来我们用爬虫让程序自动输入关键词去搜索相应的笔记
首先找到这个搜索框的元素,鼠标点击右键,再次点击检查 或者f12
点击左上角的这个小箭头
点击完毕以后将鼠标移到左边的小红书,只要放上去,就会出现以下的蓝色和绿色的框框,比如你想输入关键词,那就将鼠标放到这个搜索上边,然后点击一下,右边的f12 Elements就会出现html
此时就可以看到右边的input输入框,对着这个input输入框在进行鼠标右键点击
复制 XPATH 元素,接着看下边的代码
ch.ele('xpath://*[@id="search-input"]').input("输入你想输入的关键词(杭州旅游攻略)")
当你输入完,正常大家在访问网页的时候,输入完点击搜索,小红书才会执行吧,在代码里面很简单哦,别眨眼往下看。。。
这个\n就是代替我们的回车键盘 ENTER,此时执行程序他家会自动输入关键词并搜索出来笔记
ch.ele('xpath://*[@id="search-input"]').input("杭州的旅游攻略\n")
此时搜索出来的笔记有很多很多,我们先爬去前10个出来看一下 今天爬的内容是(图片,笔记标题,笔记点赞,收藏,浏览,发笔记的作者)
获取每个笔记里面有多少张图片
def blog_img_len(self):
img_len = self.ch.eles('xpath://*[@id="noteContainer"]/div[2]/div/div/div[6]/div[@class="pagination-list"]/div')return len(img_len)"""笔记图片抓取"""
def blog_img_spider(self):
img_len = self.blog_img_len()
img_link_list = []for i in range(0,img_len+1):
blog_img = self.ch.ele('xpath://*[@id="noteContainer"]/div[2]/div/div/div[2]/div/div[@data-index="{}"]/div/img'.format(i))if str(blog_img)!='None':
blog_img = str(blog_img).split("src='")[1].split("' fetchpriority='auto'")[0]
img_link_list.append(blog_img)return img_link_list
下边就是获取笔记的点赞 收藏等数据
for j in blog_list:
self.ch.get("https://www.xiaohongshu.com/explore{}".format(j))
time.sleep(0.5)
blog_img_link = self.blog_img_spider()
blog_user_name = self.ch.ele('xpath://*[@id="noteContainer"]/div[4]/div[1]/div/div[1]/a[2]/span')try:
blog_title = self.ch.ele('xpath://*[@id="detail-title"]')
blog_title = blog_title.text
blog_time = self.ch.ele('xpath://*[@id="noteContainer"]/div[4]/div[2]/div[1]/div[3]/span[1]')
blog_time = blog_time.text
except:
blog_title =''
blog_time =''
blog_article = self.ch.ele('xpath://*[@id="detail-desc"]/span[1]')
blog_like = self.ch.ele('xpath://*[@id="noteContainer"]/div[4]/div[3]/div/div/div[1]/div[2]/div/div[1]/span[1]/span[2]')
blog_collect = self.ch.ele('xpath://*[@id="note-page-collect-board-guide"]/span')
blog_comment = self.ch.ele('xpath://*[@id="noteContainer"]/div[4]/div[3]/div/div/div[1]/div[2]/div/div[1]/span[3]/span')
result ={"blog_user_name":blog_user_name.text,"blog_title":blog_title,"blog_img_link":blog_img_link,"blog_time":blog_time,"blog_article":blog_article.text,"blog_like":blog_like.text,"blog_collect":blog_collect.text,"blog_comment":blog_comment.text}
data_frame_list.append(result)print(result)
接下来就是重点哦
我们开头所说的登录授权,其实15天内只需要授权一次哦,授权完我会记住你的登录token和浏览器缓存,你们每次爬虫都不需要在授权 很方便吧,授权token信息会写在数据库,方便进行管理
点击发送 ,代码就会执行了哦
这里就拿到结果了哦,超级方便,轻轻一点,就能获取数据了
说到这里还不懂的朋友可以关注我的小红薯,里边会有讲解哦,关注后给我发一条私信 csdn来的哦
我会实时为大家解答,还有视频号 抖音 快手等
小红薯搜索:
版权归原作者 fhj_fhj 所有, 如有侵权,请联系我们删除。