**
爬虫(一):用Python获取东方财富股吧评论
**
第一次尝试爬虫,因为需要选择了东方财富股吧,需要的小伙伴可以一起来学习,首先声明一下,本人也是从b站学来了,第一次就是照葫芦画瓢,有样学样获取的。首先附一下视频连接吧,有需要的可以去看详细内容哦~时间也不是很长
https://www.bilibili.com/video/BV1oz4y1Z7pt?from=search&seid=12230486286090734478
库
需要用到的库有:etree,requests,pandas
requests:获取网页的
etree中的lxml:解析网页文档的
pandas:保存文档
所以呢,需要用到的小伙伴需要先将前两个库下载下来~
接下来就是敲代码了
代码上该有的注释都有了,这里我就不赘述了,想知道获取的详情可以看视频,他讲得很详细呢~
'''第一步:导入相关库'''
from lxml import etree #解析文档
import requests #获取网页
import pandas as pd #保存文件
'''
需要保存的内容:
从股吧网页页面来看,有阅读量、评论量、标题、作者和时间
'''
max_page = int(input("请输入最大获取页面:") #最大爬取页面
all_reards = [] #爬取的阅读量存储在列表中
all_markers = [] #爬取的评论量存储在列表中
all_title = [] #爬取的标题存储在列表中
all_authors = [] #爬取的作者存储在列表中
all_time = [] #爬取的时间存储在列表中
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64).......me/86.0.4240.198 Safari/537.36'
}#构造头文件,这是模拟真人登录,为了防有反爬虫机制的
这里需要说明一下,这个User-Agent需要自己去网页上获取,上面的代码使用不了~~~获取步骤如下:
首先进入股吧网站,获得开发源代码(右键—>审查元素)
就会看到以下界面:
然后点击网络,将网页刷新一下,随便点击一个就行
点完之后,在右边寻找目标:
然后将其全部复制下来就好了~
'''构造循环爬取网页'''
for page in range(1,max_page+1):
print('craling the page is {}'.format(page))
url = f'http://guba.eastmoney.com/list,zssh000001_{page}.html'
response = requests.get(url,headers=headers)
#print(response.text) #可以尝试看一下出来的是什么东西哦
#break
root = etree.HTML(response.text) #解析文档
'''
获取文本数据
'''
readers = root.xpath("//div[contains(@class,'articleh normal_post')]//span[@class='l1 a1']//text()")
markers = root.xpath("//div[contains(@class,'articleh normal_post')]//span[@class='l2 a2']//text()")
title = root.xpath("//div[contains(@class,'articleh normal_post')]//span[@class='l3 a3']//a//text()")
author = root.xpath("//div[contains(@class,'articleh normal_post')]//span[@class='l4 a4']//a//text()")
puth_time = root.xpath("//div[contains(@class,'articleh normal_post')]//span[@class='l5 a5']//text()")
all_reards += readers
all_markers += markers
all_title += title
all_authors += author
all_time += puth_time
#print(title)
#break
'''
将获得的数据保存下来
'''
data_raw = pd.DataFrame()
data_raw["read"] = all_reards
data_raw["mark"] = all_markers
data_raw["title"] = all_title
data_raw["author"] = all_authors
data_raw["puth_time"] = all_time
data_raw.to_excel("D:\\py学习文件\\data1.xls",index=False)
好了,这样就ok了~
这些只是评论标题,而且还有些被省略了,也不是我需要的终极目标数据,那怎样获取点击帖子后的全部文字呢?
学习路漫漫~~~学有所成再回来
(第一次写这种文章,希望有帮助 /xk)