Python实现登录人人网并抓取新鲜事的方法

Python实现登录人人网并抓取新鲜事的方法可以分为以下几个步骤:

1.导入requests和BeautifulSoup模块

import requests
from bs4 import BeautifulSoup

2.获取登录页面信息,分析登录页面的HTML结构并提取需要post的数据

login_url = 'http://www.renren.com/ajaxLogin/login'
session = requests.session()
response = session.get('http://www.renren.com/')
soup = BeautifulSoup(response.text, 'html.parser')
form = soup.find('form', attrs={'id': 'loginForm'})
action_url = form['action']
lt = form.find('input', attrs={'name': 'lt'})['value']
execution = form.find('input', attrs={'name': 'execution'})['value']
psp = form.find('input', attrs={'name': 'psp'})['value']  # password加密方式
_data = {
    'email': '输入你的账号',
    'password': '输入你的密码',
    'icode': '',
    'origURL': 'http://www.renren.com/home',
    'domain': 'renren.com',
    'key_id': '1',
    'captcha_type': 'web_login',
    'rt': '',
    'execution': execution,
    '_eventId': 'submit',
    'lt': lt
}
response = session.post(action_url, data=_data)

3.多次发送请求并获取新鲜事信息,解析HTML结构并提取需要的内容

for i in range(10):  # 获取十页新鲜事信息
    url = 'http://www.renren.com/feedretrieve?requestToken=-136 ed017-c5c0-4dd2-a69e-5c17bfdc5afd&start={}&limit=10&publisher=0&_=1510234173952'\
          .format(10*i)
    response = session.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    for item in soup.find_all('div', attrs={'class': 'content'}):
        print(item.text.strip())

这里给出两条示例说明:

示例1:

如果你想要保存获取到的新鲜事信息到文件中,可以使用以下代码:

with open('news.txt', 'w', encoding='utf-8') as f:
    for i in range(10):
        url = 'http://www.renren.com/feedretrieve?requestToken=-136 ed017-c5c0-4dd2-a69e-5c17bfdc5afd&start={}&limit=10&publisher=0&_=1510234173952'\
              .format(10*i)
        response = session.get(url)
        soup = BeautifulSoup(response.text, 'html.parser')
        for item in soup.find_all('div', attrs={'class': 'content'}):
            f.write(item.text.strip() + '\n')  # 将新鲜事信息写入文件中,每个新鲜事占一行
        print('第{}页新鲜事已保存'.format(i+1))

示例2:

如果你想将获取到的新鲜事信息存入数据库中,可以使用以下代码:

首先,需要安装pymysql模块:

!pip install pymysql

然后,将以下代码插入到第三个步骤中的for循环中:

import pymysql

# 连接数据库
db = pymysql.connect(host='localhost', user='root', password='password', db='test', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
cursor = db.cursor()
for item in soup.find_all('div', attrs={'class': 'content'}):
    sql = "INSERT INTO `news` (`content`) VALUES ('{}')".format(item.text.strip())
    cursor.execute(sql)
db.commit()
db.close()
print('第{}页新鲜事已保存至数据库'.format(i+1))

这样,就可以将获取到的新鲜事信息存储到名为news的数据表中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现登录人人网并抓取新鲜事的方法 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python 如何解决稀疏矩阵运算

    Python 如何解决稀疏矩阵运算 稀疏矩阵是一种特殊类型的矩阵,其中大量的元素值都为0。在大多数实际问题中我们往往只需要处理少部分非零元素。这些矩阵需要专门的算法来处理,否则将浪费大量的计算时间和内存空间。Python提供了许多包来处理稀疏矩阵,其中最常用的包为scipy.sparse。 下面将介绍如何使用scipy.sparse来解决稀疏矩阵运算问题。 …

    python 2023年5月19日
    00
  • python 中defaultdict()对字典进行初始化的用法介绍

    下面是关于“python 中defaultdict()对字典进行初始化的用法介绍”的详细攻略: 什么是 defaultdict() 在Python中,我们经常需要使用字典(dict)这个数据结构,字典是一个无序的键值对(key-value)集合,每个键都不同,且可以通过键来访问其对应的值。但是,当我们要使用一个没有初始化的字典时,如果该字典中的键还不存在时(…

    python 2023年6月3日
    00
  • python多线程之事件Event的使用详解

    Python多线程之事件Event的使用详解 本文将详细讲解Python多线程下的事件(Event)的使用。事件(Event)是多个线程协作中常见的同步机制,可以用于实现线程之间的通信和数据共享。 事件(Event)的基本说明 事件(Event)是线程间同步机制的一种。要理解事件(Event)的概念,我们需要首先了解两个概念: 事件(Event)状态:事件(…

    python 2023年5月14日
    00
  • python 爬虫出现403禁止访问错误详解

    当使用Python进行网络爬虫时,可能会遇到被网站拒绝访问的情况,出现403 Forbidden错误。这种错误是由于目标网站的服务器禁止程序访问或者限制了访问请求的频率。下面是解决这种问题的完整攻略。 1.使用 User-Agent/Header 伪装请求头 许多网站可以检测到其服务器是否被网络爬虫访问,如果检测到则会拒绝访问。因此我们可以使用 User-A…

    python 2023年6月3日
    00
  • python中常见错误及解决方法

    当我们在Python编程中,经常会遇到各种异常报错。以下是一些常见的Python异常报错及其解决方案: 1. SyntaxError Syntax通常是由于代码中语法错误引起的。解决方案是检查代码中的语法错误,并进行修正。 示例1:缺少冒号 # 错误示例 if x == 1 print("x is 1") # 正确示例 if x == 1…

    python 2023年5月13日
    00
  • 详解Python PIL ImageDraw.Draw.line()

    请参考以下完整的Python PIL ImageDraw.Draw.line()攻略: 标题 Python PIL ImageDraw.Draw.line()函数的完整用法说明 简介 Python PIL 라이브러리의 ImageDraw 모듈에서 Draw.line() 함수는 이미지나 이미지야하기를 사용하여 선을 그릴 수 있게 해줍니다. 이 함수…

    python-answer 2023年3月25日
    00
  • Pycharm新手使用教程(图文详解)

    Pycharm新手使用教程(图文详解) 1. 下载安装Pycharm 首先要到Pycharm的官网 https://www.jetbrains.com/pycharm/download/ 下载对应操作系统的安装包,并按照提示完成安装。 示例说明1:- 操作系统为Windows系统,可以在官网上选择下载Windows版本的安装包;- 安装过程中需要注意选择需要…

    python 2023年5月30日
    00
  • 使用python实现UDP通信方式

    使用Python实现UDP通信方式 1. UDP协议简介 UDP(User Datagram Protocol)用户数据报协议是一种无连接的协议,它是基于IP协议的,UDP的特点是无连接、尽力而为,它不像TCP协议需要在通信两端先建立连接,它直接就可以向对方发送数据,但是UDP不保证数据的可靠传输。 2. Python的socket编程 Python 的 s…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部