Python爬虫入门实践

编译工具:PyCharm (community edition)

编译环境:Python 3.6

操作系统:Windows10 专业版

爬取目标:选股宝 的利好消息


需要用到的库:

from  bs4 import BeautifulSoup
from selenium import webdriver
import time


为什么要用selenium呢?

答:一个页面的信息是有限的,我们需要加载更多,而这个东西可以模拟点击


PS:要模拟点击还需要下载模拟器对应的driver,这里我用的是Chrome的chromedriver (需要科学上网)


首先获取网页代码

def GetHtml():
    url = 'https://xuangubao.cn/'
    chromedrive = '这里填chromedriver的存放路径'
    browser = webdriver.Chrome(chromedrive)
    browser.get(url)
    for num in range(5):  # 加载更多(点击事件)
        browser.find_element_by_class_name("home-news-footer-loadmore").click()
        time.sleep(10)
    html = browser.page_source  # 获取网页源代码
    return html


每一条利好信息都会有一个显著的图标

Python爬虫入门实践_第1张图片


从这里下手,做一个“定位”

    soup = BeautifulSoup(html, 'html.parser')
    section = soup.find_all('ul', class_='home-news-container')
    good_news = soup.find_all('span', class_='bullish-and-bear bullish')


我们还需要新建一个文档来存放爬下来的数据

    #新建存储数据的文档
    title = '股票'
    fb = open('%s.txt'%title,'w',encoding='utf-8')


接下来是找到需要的信息

    for i in good_news:
        word = i.next_element
        for k in range(5):
            word = word.next_element  #正文
        word = word.string
        elder = i.find_next('ul',class_="stock-group")
        title_text = i.previous_element #标题
        txt = elder.strings  #股票名+升/降幅度


然后写入文档

fb.write(title_text)
fb.write('\n  ')
fb.write(word)
fb.write('\n\n')
for j in txt:
    print(j)
    fb.write(j)
    fb.write(' ')
fb.write('\n')

Python爬虫入门实践_第2张图片 

爬利空消息其实也是大同小异

bad_news = soup.find_all('span',class_='bullish-and-bear bear')



 总结:  

    爬虫其实并不难,因为python有很多功能超乎想象的库(其实是我见识少),当然这只是很简单的文本内容。但一开始还是会不知道从何下手,刚开始时是跟着视频用requests+正则表达式爬取小说网站的一部小说。后来身边的人都说beautifulsoup好用,我就尝试用beautifulsoup来爬选股宝。在自学过程中发现比正则表达式好用太多了,代码简洁了不少,所以说用对方法还是很重要的,当然最重要的还是得自己动手敲代码

你可能感兴趣的:(Python爬虫入门实践)