爬取选股宝网站

    大家好,我是一名大二学生,这学期我们老师给我们布置的任务是用爬虫爬取一个网站中的某些数据。我做的是较为简单的,只是爬取选股宝中那些标有利好利空以及其对应的名字。因为本人是新手,所以如果有不对或者可以改进的地方欢迎提出来。

    首先导入需要的包

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import selenium.webdriver.support.ui as ui
from time import sleep
import re
import time

因为我要爬取的选股宝是动态页面,所以需要安装selenium加上对应浏览器插件,我选的是chrome,所以要安装chromedrive这个插件,在此由于selenium的安装教程在百度上可以很容易找到,我就不多说了。

首先是调动谷歌浏览器,并且读取要爬取的目标网页选股宝。

browser = webdriver.Chrome()
url ="https://xuangubao.cn"
browser.get(url)

然后因为要加载动态页面,所以需要先执行的操作是下啦滚动条还有进行点击事件。

execute_times(3)
click()
wait = ui.WebDriverWait(browser, 10)


#下拉滚动条
def execute_times(times):
    for i in range(times + 1):
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        time.sleep(2)

#点击"加载更多"事件
def click():
    submit = WebDriverWait(browser,10).until(
            EC.element_to_be_clickable((By.CSS_SELECTOR,'#nuxt-layout-container > section > section.home-main-container.main-container > section > div > div.home-news-main > div:nth-child(2) > div'))
        )
    submit.click()
    sleep(3)

调用函数并且执行以及对它进行等待,等待页面完全显示。

execute_times(3)
click()
wait = ui.WebDriverWait(browser, 10)

好了,万事俱备,所以现在开始来抓取所要的数据。首先来观察要抓曲的数据有什么共同点。我发现他们是同在一个class中,所以我们要先把它这个class中所有数据都选取出来。


target = browser.find_elements_by_class_name("news-item-title")

接下来我是利用正则表达式把我需要的标题后面有利空或者利好的这类提取出来,因为也有一些是没有标这两个标志的,所以我用if函数去判断有没有,有就留下,没有就跳过。

#匹配利好的
def gain_good():
    for item in target:
        name=re.findall(r"(.*?)利好",str(item.text))

        situation = re.findall(r"利好",str(item.text))

        if name == []:
            continue
        else:
            user=name

        if situation == []:
            continue
        else:
            x=situation

        for i in range(0,len(user)):
            print(user[i]+"   "+x[i])

#匹配利空的
def gain_bad():

    for item in target:
        name1 = re.findall(r"(.*?)利空", str(item.text))
        situation1 = re.findall(r"利空", str(item.text))
        if name1 == []:
            continue
        else:
            user1 = name1
        if situation1 == []:
            continue
        else:
            x1 = situation1
        for v in range(0, len(user1)):
            print(user1[v] + "   " + x1[v])

#调用匹配函数去达成目的
gain_good()
gain_bad()

最后是完成任务后对打开的页面进行关闭。

browser.quit()

我爬取选股宝内容到此结束了,如果有什么建议欢迎留下,因为我只是一个新手,对代码有什么改进的地方也欢迎提出来哦!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 使用Python爬取网易藏阁的方法有很多种,可以使用requests库和BeautifulSoup库来实现。以下是一个简单的爬取网易藏阁商品信息的示例代码: ```python import requests from bs4 import BeautifulSoup def crawl_wangyi_cangbaoge(): # 请求网页 url = 'https://cangbaoge.wanmei.com/' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) # 解析网页 soup = BeautifulSoup(response.text, 'html.parser') # 定位到商品列表所在的HTML元素 items = soup.find_all('div', class_='goods-list-item') for item in items: name = item.find('h4').text # 商品名称 price = item.find('div', class_='price').text # 商品价格 print(f'商品名称:{name},商品价格:{price}\n') if __name__ == '__main__': crawl_wangyi_cangbaoge() ``` 以上代码使用requests发送HTTP请求,使用BeautifulSoup解析网页HTML,通过找到商品列表所在的HTML元素,提取商品的名称和价格信息,并进行打印输出。 当然,这只是一个简单的示例,实际爬取网易藏阁数据可能需要更多的处理和解析操作,比如翻页、点击进入商品详情页等。这些可以根据具体情况进行进一步的开发和优化。 ### 回答2: Python爬虫是一种用于自动化获取网页信息的工具。使用Python爬虫可以方便地从网易藏网站获取商品信息。 首先,我们需要导入所需的库,如requests和BeautifulSoup。然后,定义一个函数来发送HTTP请求并获取网页内容。使用requests库的get()方法发送HTTP GET请求,并将响应保存在一个变量中。 接下来,我们需要解析网页内容。使用BeautifulSoup库的解析器,可以轻松地从HTML或XML中提取所需的数据。通过找到包含商品信息的HTML标签,并使用find_all()方法找到所有匹配的标签。 然后,我们遍历匹配的标签,提取出商品的名称、价格、图片等信息。将这些信息保存在一个字典或列表中。 最后,我们可以将提取到的商品信息保存到本地文件或数据库中,或进行其他进一步的处理和分析。 需要注意的是,爬取网易藏阁时需要遵守网站的使用规则,并尊重网站的反爬措施。可以设置合适的爬虫间隔时间,避免给服务器造成过大的压力,并使用合理的方式获取信息,不进行恶意爬取或滥用网站资源。 总而言之,使用Python编写爬虫程序,可以方便地爬取网易藏阁等网站的商品信息,并进行后续的数据处理和分析。 ### 回答3: Python可以使用第三方库requests和BeautifulSoup来实现网页爬取功能。首先,需要用requests库发送HTTP请求获取网页的HTML源代码。然后,可以使用BeautifulSoup库解析HTML源代码,提取出需要的信息。 要爬取网易藏阁的内容,可以按照以下步骤进行: 1. 导入requests和BeautifulSoup库: ```python import requests from bs4 import BeautifulSoup ``` 2. 发送HTTP请求获取网页的HTML源代码: ```python url = "http://cb.nie.netease.com/" response = requests.get(url) html = response.text ``` 3. 使用BeautifulSoup库解析HTML源代码: ```python soup = BeautifulSoup(html, "html.parser") ``` 4. 根据网页的结构和标签,找到要提取的信息的位置,使用BeautifulSoup的相关方法进行提取: ```python # 以获取所有物品名称为例 item_names = soup.find_all("div", class_="item-name") for item_name in item_names: print(item_name.text) ``` 以上代码只是一个简单的示例,具体的提取方式和相关标签需要根据网页的具体结构进行调整。 从网易藏爬取的数据可以进行进一步的处理和分析,例如保存到文件、数据统计等等。但需要注意,爬取网页时应遵守网站的相关规定和条款,不要过度请求或滥用爬虫,以及尊重网站的隐私政策和使用限制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值