爬虫(一):东方财富股吧评论

**

爬虫(一):用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)

上一篇:【Spring源码分析】Bean加载流程概览


下一篇:python – 运行时Tkinter窗口为空白