简书文章爬取并存储到mongodb

昨天突发奇想将简书的各种文章爬了一遍,我也不知道最后爬了多少,Kelvin到自己渣渣的电脑,并没有将文章内容爬下来,只是存了文章的名字,作者,url和开头的第一句话。
首先分析一下简书这个网站,会发现这个网站不是很难,适合给我提升信心。不多说了 我把保存到数据库的数据给大家看一下。这里写图片描述
这里写图片描述
第一个框是各个专题,剩下几个就是我需要爬取的内容

import re
import requests
from bs4 import BeautifulSoup
for n in range(5):
    url = 'http://www.jianshu.com/recommendations/collections?page=%s&order_by=recommend'%n

    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"}
    html = requests.get(url, headers)
    soup = BeautifulSoup(html.text,'lxml')
    hrefs = soup.find_all(class_='collection-wrap',attrs = {'a','href'})
    for href in hrefs:
        partent = re.compile('<a href="(.*?)" target="_blank">.*?</a>',re.S )
        result = re.search(partent ,str(href)).groups(0)[0]
        # print(result )
        base_url = 'http://www.jianshu.com'+result
        # print(base_url )


 import pymongo
import re
import requests
import time
from bs4 import BeautifulSoup
from 简书专题 import base_url

# 1 打开数据库连接,mongodb默认端口为27017
conn = pymongo.MongoClient(host='localhost',port=27017)
# 2 选择或创建数据库
jianshu= conn['jianshu']
# 3 选择或创建数据集合
dashuseng = jianshu['jianshuDA']

def get_list(ID):
    url = base_url+"?order_by=added_at&page=%s"%ID
    headers= {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"}
    response = requests.get(url,headers )
    time.sleep(1)

    soup = BeautifulSoup(response.text ,'lxml' )
    note_list = soup.find_all('div',class_='content')
    for note in note_list :
        title = note.find(class_='title').text
        author = note.find(class_='blue-link').text
        charget = note.find(class_='abstract').text
        pattern = re.compile('<a class="title" href="(.*?)" target="_blank">.*?</a>', re.S)
        charget_url = 'http://www.jianshu.com' + re.search(pattern ,str(note)).groups(0)[0]
        # wenzs = BeautifulSoup( requests.get(charget_url,headers ).text ,'lxml' )
        # wenz = wenzs.find_all(attrs={'show-content','p'})
        # pattern2 = re.compile('<p>(.*?)</p>')
        # dd = re.search(pattern2,str(wenz))
        # print(charget_url )
        # print(dd)


        dic = {
            "title": title ,
            "author": author,
            "charget": charget,
            "charget_url":charget_url,
             # "dd":dd

        }
        dashuseng.insert_one(dic)
        # print(title ,author ,charget ,charget_url)

# def save_to_mongodb(self):



for ID in range(1000):
    get_list(ID)
    if get_list(ID) is False   :

        break

我刚又加上了一些代理啥的还是不大行,这个反爬我没有弄明白最后的数据只有3000条,可惜啊

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
scrapy是一个用于网站抓取和数据提取的Python框架,而微博和简书分别是一个社交媒体平台和一个知识分享平台。要使用scrapy爬取微博评论简书,可以按照以下步骤进行: 首先,需要安装好Python和scrapy框架。可以通过安装Python的pip包管理工具,并使用pip安装scrapy。 然后,对于微博,可以通过登录微博开放平台,注册一个开发者账号,并创建一个应用。获取到应用的App Key和Secret Key,以便进行API调用。在scrapy项目的settings.py文件中添加好相应的key。 接下来,使用scrapy创建一个新的项目。可以使用命令行工具执行以下命令:scrapy startproject weibo 在项目的spiders目录下,创建一个新的spider。可以使用命令行工具执行以下命令:scrapy genspider weibo_spider "weibo.com" 编辑新创建的spider,编写爬取微博评论的代码。可以使用weibo API提供的接口进行评论的爬取。 然后,启动爬虫,执行以下命令:scrapy crawl weibo_spider 在简书的情况下,可以使用简书提供的API接口进行评论的抓取。首先,需要注册一个账号,并通过简书的开发者平台获取到相应的API Key。然后,使用获取到的API Key进行API调用。 创建一个新的spider来实现对简书评论的爬取,类似于上述微博的爬虫。 最后,启动爬虫,执行相应的命令来抓取简书评论。 总之,使用scrapy爬取微博评论简书可以通过利用它提供的网页抓取和数据提取功能,结合微博和简书的API进行相应的数据获取。通过上述步骤的操作,可以简单实现这个目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值