python爬新闻并保存csv_Python爬虫日记三:爬取v2ex数据用csv保存

一:前言

v2ex是一个汇集各类奇妙好玩的话题和流行动向的网站,有很多不错的问答。这次爬虫是五一期间做的,贴出来网址https://www.v2ex.com/?tab=all。

目标:爬取全部分类中的文章标题,分类,作者,文章地址这些内容然后以csv格式保存下来。

d1bf2f0bdc51

Paste_Image.png

二:说明

本次使用的是Python3.6版本

作者这个内容是js动态数据 使用xpath Beautifulsoup的tag和select都抓取不到,我试了试用正则表达式可以,目前还没学其他方法就这样头铁了。

使用csv保存数据的时候我发现writer.writerow()和writer.writerows()是不一样的,本次用的前者。

三:实战分析

1.导入本次使用的模块,csv, re, requests, BeautifulSoup。

import csv, requests, re

from bs4 import BeautifulSoup

2.请求网页与解析网页。

url = 'https://www.v2ex.com/?tab=all'

html = requests.get(url).text

soup = BeautifulSoup(html, 'html.parser')

3.先看一下网页结构。

d1bf2f0bdc51

Paste_Image.png

然后来获取文章标题,分类,作者,文章地址,这里的标题和分类都很容易获取,使用BeautifulSoup解析后按照class就可以找到,然后使用get_text()即可获取我们需要的内容,最头疼的是作者和文章链接,我这里使用正则才把他们挖掘出来,不过也算是练习正则表达式的使用。最后把获取的内容都传给articles列表。

articles = []

for article in soup.find_all(class_='cell item'):

title = article.find(class_='item_title').get_text()

category = article.find(class_='node').get_text()

author = re.findall(r'(?<=

u = article.select('.item_title > a')

link = 'https://www.v2ex.com' + re.findall(r'(?<=href=").+(?=")', str(u))[0]

articles.append([title, category, author, link])

4.把列表中的数据保存在csv中,并且给他们第一行写入标题。

with open('v2ex.csv', 'w') as f:

writer = csv.writer(f)

writer.writerow(['文章标题', '分类', '作者', '文章地址'])

for row in articles:

writer.writerow(row)

四:总结

最后的效果:

d1bf2f0bdc51

Paste_Image.png

这次爬取遇到了一些问题,慢慢的学会更多东西,爬虫让我非常快乐。我以后会坚持写下去,有喜欢的朋友一起学习交流吧!

这里贴出我的github地址,我的爬虫代码和学习的基础部分都放进去了。

https://github.com/rieuse/learnPython

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值