selenium 爬党建新闻与应用(确定版)

1、前言:

①selenium 去爬
②我爬的数据是新闻的所有内容,目前图片爬不到
③爬所有的新闻数据

被爬网站
我爬的信息是党建网的7页的所有新闻标题、内容、来源这3个字段
1、因为目前只有7页 所以我爬7页,这里可以自己自定义爬虫页码
党建网地址:http://cpc.people.com.cn/GB/64093/64387/index.html
在这里插入图片描述

2、知识点总结:

2.1爬虫指定页码(for循环、格式化字符串)

在这里插入图片描述
这里用到for循环 和格式化字符串知识点 详情:
http://www.python3.vip/tut/py/basic/10/
http://www.python3.vip/tut/py/basic/11/#for-%E5%BE%AA%E7%8E%AF

2.2空列表 怎么把内容插入空列表

在这里插入图片描述

article = []#创建一个空列表
content = wd.find_element_by_xpath("//div[@class='show_text']")# xpath到文章内容
article.append(content.text.strip())#把文章插入到列表中

2.3selenium点击链接进入子页面抓取内容(新闻抓取案例一)

参考地址:https://blog.csdn.net/qq_43251443/article/details/82819887
在这里插入图片描述

3、完整代码

from selenium import webdriver
import  time
# 创建 Webwd 实例对象,指明使用chrome浏览器驱动

wd = webdriver.Chrome(r'D:\tools-work\chromedriver_win32\chromedriver.exe')

wd.implicitly_wait(5)#等待时间 一定要写

# 链接地址
for x in range(1,8):
    wd.get(f'http://cpc.people.com.cn/GB/64093/64387/index{x}.html')#链接地址

    # #标题
    titles = wd.find_elements_by_xpath('/html/body/div[7]/div[1]/ul/li/a')

    for x in titles:
        print(x.text)

    url = wd.find_elements_by_xpath('/html/body/div[7]/div[1]/ul/li/a')
    length=len(url)

    for i in range(0, length):  # 遍历列表的循环,使程序可以逐一点击
        links = wd.find_elements_by_xpath("/html/body/div[7]/div[1]/ul/li/a")  # 在每次循环内都重新获取a标签,组成列表
        link = links[i]  # 逐一将列表里的a标签赋给link
        url = link.get_attribute('href')  # 提取a标签内的链接,注意这里提取出来的链接是字符串
        wd.get(url)  # 不能用click,因为click点击字符串没用,直接用浏览器打开网址即可
        time.sleep(1)  # 留出加载时间
        #打印来源
        souce = wd.find_element_by_xpath('/html/body/div[8]/div[1]/div/p[2]/a').text#xpath找到来源
        print(souce)#打印来源
        time.sleep(2)#留出加载时间
        #打印文章内容   因为文章内容太长,所以 这边我给他写入到列表里
        article = []#创建一个空列表
        content = wd.find_element_by_xpath("//div[@class='show_text']")# xpath到文章内容
        # print(content.text)#这里可以打印一下内容
        article.append(content.text.strip())#把文章插入到列表中
        print(article)#打印新闻内容
        #  将数据写入新文件
        # print("\n")
        wd.back()  # 后退,返回原始页面目录页
        time.sleep(1)  # 留出加载时间
print(length)  # 打印列表长度,即有多少篇文章
wd.quit()#关闭列表



代码运行展示
在这里插入图片描述

4、实际应用

1、打印时 根据实际情况 按print去打印,打印时 按需求打印 不用的 给注释了
2、打印完后 可以把内容直接复制到数据库,或者是先存入excle表再复制到数据库
3、xpath用法 这个要自己学习
4、selenium操作 这个要自己学习

参考地址:
https://blog.csdn.net/qq_43251443/article/details/82819887
http://www.python3.vip/tut/py/basic/10/
http://www.python3.vip/tut/py/basic/11/#for-%E5%BE%AA%E7%8E%AF

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值