一、(1)selenium 爬取证监会新闻标题超链接的详细过程

一、selenium 简单爬取证监会新闻标题的URL。

本篇文章主要是对selenium的入门使用给予一个示例介绍,爬取的内容为证监会所有新闻标题的超链接。用的是谷歌浏览器,浏览器的版本选择,老铁们可以百度搜索一下。

直接开工!
首先打开要爬取的网页
http://www.csrc.gov.cn/pub/newsite/zjhxwfb/xwdd/
一、(1)selenium 爬取证监会新闻标题超链接的详细过程_第1张图片
打开后的网页如图所示。

开始写代码。步骤6为完整代码,可直接查看。

1,导入模块

import time            
from selenium import webdriver             

2,在代码中配置好自己的浏览器。

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])
driver = webdriver.Chrome(chrome_options=options)

3,设置保存的路径,输入网页URL。

result = codecs.open( 'url.txt','w','utf-8')
url="http://www.csrc.gov.cn/pub/newsite/zjhxwfb/xwdd/"
driver.get(url)

4,网页打开检查,定位新闻标题的Xpath,复制Xpath。

一、(1)selenium 爬取证监会新闻标题超链接的详细过程_第2张图片
复制多条url找出规律。
第一条新闻://[@id=“myul”]/li[1]/a
第二条新闻://
[@id=“myul”]/li[2]/a
第三条新闻://*[@id=“myul”]/li[3]/a
发现规律:li标签在变化。这里可以利用正则表达式中的※匹配这个Xpath,代码为:

A ="//*[@id='myul']/li["
B="]/a"
C=A +"*"+B

5,设置翻页,选择需要爬取的页数。

num=1

while num < 10:
    link_url = driver.find_elements_by_xpath(C)
    for link in link_url:
        print(link.text)
        print(link.get_attribute('href'))
        resultA.write(link.get_attribute('href'))
        resultA.write("\r\n")
        
    driver.find_element_by_link_text('下一页').click()
    

6,完善代码,输出完整代码,查看爬取结果。

# -*- coding: utf-8 -*-

from selenium import webdriver
import time
import re
import codecs

# 设置自己的浏览器
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors"])
driver = webdriver.Chrome(chrome_options=options)

# 爬取结果保存的路径
result = codecs.open('jieguo.txt', 'w', 'utf-8')
# 网页URL
url = "http://www.csrc.gov.cn/pub/newsite/zjhxwfb/xwdd/"
driver.get(url)
# 设置隐式等待。
driver.implicitly_wait(10)

# 定位新闻标题的Xpath,用星号 ※ 匹配
A = "//*[@id='myul']/li["
B = "]/a"
C = A + "*" + B

# 设置爬取页数,得到href值。
num = 1

while num < 10:
    link_url = driver.find_elements_by_xpath(C)
    for link in link_url:
        print(link.text)
        print(link.get_attribute('href'))
        result.write(link.get_attribute('href'))
        result.write("\r\n")
        # 找到对应下一页的网页元素。执行点击操作
    driver.find_element_by_link_text('下一页').click()
    # 设置停顿秒数,防止爬取太快报错,有些网页不需要该句,我们可以自己测试一下。
    time.sleep(1)

    num = num + 1
#关闭结果文件的写入
result.close()
#关闭和退出浏览器
driver.close()
driver.quit()

运行代码查看结果:

一、(1)selenium 爬取证监会新闻标题超链接的详细过程_第3张图片

打开自己保存结果的路径,查看爬取结果:

一、(1)selenium 爬取证监会新闻标题超链接的详细过程_第4张图片

搞定收工。

“☺☺☺ 若本篇文章对你有一丝丝帮助,请帮顶、评论点赞,谢谢。☺☺☺”

↓↓↓↓

你可能感兴趣的:(一、(1)selenium 爬取证监会新闻标题超链接的详细过程)