python爬虫代码新闻_Python小白的爬虫代码——澎湃新闻列表

在参照豆瓣影评的基础上写的抓取澎湃新闻列表代码

# coding = utf-8

import requests

from lxml import etree

import time

import random

import csv

import codecs

data = []

def getPP(page):

url = 'https://www.thepaper.cn/load_chosen.jsp?nodeids=25949&topCids=2123127,2122823,2120622,2123384,&pageidx=%d'%(page)

response = requests.get(url)

response.encoding = 'utf-8'

response = etree.HTML(response.content,parser=etree.HTMLParser(encoding='utf-8'))#添加默认编码

for i in range(1,21):

title1 = response.xpath('//body/div[%d]/h2/a'%(i))#获取title

url1 = response.xpath('//body/div[%d]/h2/a'%(i))#获取url

summary1 = response.xpath('//body/div[%d]/p'%(i))#获取summary

tag1 = response.xpath('//body/div[%d]/div[2]/a'%(i))#获取文章分类

time1 = response.xpath('//body/div[%d]/div[2]/span[1]'%(i))#获取发布时间

rtimes1 = response.xpath('//body/div[%d]/div[2]/span[2]'%(i))#获取回复数

title_element = title1[0].text.encode('utf-8')

url_element = url1[0].attrib['href']

url_element = 'https://www.thepaper.cn/' + url_element#完善链接

summary_element = summary1[0].text.encode('utf-8')

summary_element = summary_element.replace(' ','')#去空格

tag_element = tag1[0].text.encode('utf-8')

time_element = time1[0].text.encode('utf-8')

if len(rtimes1) == 0:

rtimes_element = 0

else:

rtimes_element = rtimes1[0].text#有些回复数为空,rtimes[0]不存在,会报错,用if函数避免这个问题

data.append([title_element,url_element,summary_element,tag_element,time_element,rtimes_element])

for i in range(1,3):#抓2页

getPP(i)

time.sleep(random.uniform(3,5))

with open ('getPP.csv','wb') as f:

f.write(codecs.BOM_UTF8)

writer = csv.writer(f)

writer.writerow(['title','url','summary','tag','publishtime','rtimes'])

for k in data:

writer.writerow(k)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你想了解如何使用 Python 爬虫获取新浪新闻信息。这个问题可以分为以下几个步骤: 1. 发送网络请求获取网页源代码 2. 解析网页源代码,提取新闻信息 3. 保存提取的新闻信息 下面我会详细介绍每个步骤的实现方法。 1. 发送网络请求获取网页源代码 我们可以使用 Python 的 requests 库来发送网络请求,并使用 BeautifulSoup 库来解析网页源代码。下面是一个简单的示例代码: ```python import requests from bs4 import BeautifulSoup url = 'https://news.sina.com.cn/' response = requests.get(url) html = response.text soup = BeautifulSoup(html, 'html.parser') ``` 这段代码首先使用 requests 库发送了一个 GET 请求,获取了新浪新闻的首页源代码。然后使用 BeautifulSoup 库解析了这个源代码。 2. 解析网页源代码,提取新闻信息 在解析网页源代码之前,我们需要先分析一下新浪新闻的网页结构,找到我们需要提取的信息所在的位置。经过分析,我们可以发现新浪新闻的每条新闻都包含在一个 div 元素中,而这个 div 元素的类名是 news-item。因此,我们可以使用 BeautifulSoup 库提供的 find_all() 方法来查找所有类名为 news-item 的 div 元素,然后逐一解析每个 div 元素,提取出我们需要的信息,例如标题、链接、时间等。下面是一个示例代码: ```python news_list = [] for news_item in soup.find_all('div', class_='news-item'): title = news_item.find('a').text.strip() link = news_item.find('a').get('href') time = news_item.find('span', class_='time').text.strip() news = {'title': title, 'link': link, 'time': time} news_list.append(news) ``` 这段代码首先使用 find_all() 方法查找所有类名为 news-item 的 div 元素,然后逐一解析每个 div 元素,提取出标题、链接、时间等信息,并将这些信息保存到一个字典中。最后,将所有字典保存到一个列表中。 3. 保存提取的新闻信息 最后,我们可以将提取的新闻信息保存到本地文件中,以便后续使用。下面是一个示例代码: ```python import json with open('news.json', 'w', encoding='utf-8') as f: json.dump(news_list, f, ensure_ascii=False) ``` 这段代码使用了 Python 的 json 库,将提取的新闻信息保存到了 news.json 文件中。 以上就是使用 Python 爬虫获取新浪新闻信息的完整过程。当然,实际操作中还需要注意一些细节问题,例如解决反爬虫机制等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值