首页 > 其他分享 >一个稍微用了下selenium的爬虫框架

一个稍微用了下selenium的爬虫框架

时间:2023-09-18 19:22:52浏览次数:40  
标签:url selenium 稍微 list 爬虫 content text driver page

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

def gethreflist(url)
    # Set the headers for the request
    headers = {
        'User-Agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
    }

    # Set up Chrome options
    chrome_options = Options()
    chrome_options.add_argument("--headless")  # Run Chrome in headless mode

    # Initialize the WebDriver
    driver = webdriver.Chrome(options=chrome_options)

    # Open the URL with the specified headers
    url = "http://www.chinaenvironment.com/zxxwlb/index_123.html"
    driver.get(url)
    # Scroll to the end of the page
    driver.find_element(By.TAG_NAME, 'body').send_keys(Keys.END)

    # Click the "more content" button until it can't be found
    while True:
        try:
            more_content_button = driver.find_element(By.XPATH, '//a[@class="getMore"]')
            more_content_button.click()
            driver.find_element(By.TAG_NAME, 'body').send_keys(Keys.END)
        except:
            break

    # Get the final content after clicking all "more content" buttons
    content = driver.page_source

    # Close the WebDriver
    driver.quit()
    
    url_list = []
    tree = etree.HTML(content)
    href_list = tree.xpath('//div[@class="sideL fl"]//a[@class = "title"]/@href')
    href_list = [item for item in href_list if item != "javascript:;"]
    url = 'http://www.chinaenvironment.com'
    for i in range(len(href_list)):
        new_url = url + href_list[i]
        url_list.append(new_url)
    return url_list
    

def download_text(url_list):
    failed_page_num = 0
    for url in url_list:
        try:
            headers = {
                'Accept':'text/html, */*; q=0.01',
                'Accept-Encoding':'gzip, deflate',
                'Accept-Language':'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7',
                'Cookie':'ASP.NET_SessionId=ycrocaebez3wg5fvn30v1mjv',
                'Host':'www.chinaenvironment.com',
                'Proxy-Connection':'keep-alive',
                'Referer':'http://www.chinaenvironment.com/zxxwlb/index_123_114250.html',
                'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
                'X-Requested-With':'XMLHttpRequest'
            }
            request = urllib.request.Request(url=url,headers=headers)
            response = urllib.request.urlopen(request)
            content = response.read()
            tree = etree.HTML(content)
            name = tree.xpath('//div[@class="articleTit"]/text()')[0]+'.txt'
            name = name.replace("/","")
            save_path = './环保网/新闻/'+name
            text = tree.xpath('//div[@class="edits"]//span/text()')
            result = ''
            for t in text:
                result = result + '\n' + t
            with open(save_path,'w') as fp:
                fp.write(result)

        except:
            failed_page_num += 1
            print("{} pages failed in this page".format(failed_page_num))
            pass

        
if __name__ == '__main__':
    url_list = gethreflist(url) # 获得main page页所有的新闻链接
    download_text(url_list) #下载所有链接中的新闻文本
    print('download complete!!')

 

标签:url,selenium,稍微,list,爬虫,content,text,driver,page
From: https://www.cnblogs.com/qtdwz/p/17712858.html

相关文章

  • 爬虫随笔(一)
    最近因为工作和研究方向的变动,开始学习爬虫,现在是刚刚入门,简单写一些,爬虫入门的建议。一、基础知识(1)掌握的编程语言:python、Html、JS、CSSPython是必须的,虽然Java也可以实现相关功能,但是总归脚本写起来方便一点。如果有语言基础,直接去菜鸟教程,看语法,就差不多掌握了。Html、JS......
  • Python 之 爬虫实战 -- 爬某音乐歌曲及评论信息
    使用Selenium爬某音乐歌曲及评论信息啦~Selenium简单介绍1)简介Selenium是一个用于测试网站的自动化测试工具,支持各种主流界面浏览器。简而言之,Selenium是一个用来做网站自动化测试的库,它的定位是做自动化测试的。我们也可以利用它来做爬虫,获取一些网页信息,并且这种爬虫是模......
  • Python 之 爬虫实战 -- 免费音乐下载器
    【Tkinter界面化小程序】用Python做一款免费音乐下载器、无广告无弹窗、清爽超流畅哦~思路进入某音乐主页输入任意歌手,比如李XX为列。音乐从哪里来?---网站的服务器里怎么从网址里得到音乐?---向网站发起网络请求最后用tkinter做成一个界面下载框即可环境本文用到的环境如下:P......
  • 代理IP与Socks5代理:跨界电商智能爬虫的引擎与安全壁垒
    摘要:随着跨界电商的蓬勃发展,数据采集和隐私保护成为企业的关键挑战。本文将深入探讨代理IP和Socks5代理在跨界电商中的应用,以及它们在智能爬虫技术中的关键作用,为企业提供数据引擎和安全防护的解决方案。第一部分:背景介绍跨界电商已成为全球贸易的重要组成部分,为企业提供了巨大的市......
  • 代理IP与Socks5代理:跨界电商智能爬虫的引擎与安全壁垒
    摘要:随着跨界电商的蓬勃发展,数据采集和隐私保护成为企业的关键挑战。本文将深入探讨代理IP和Socks5代理在跨界电商中的应用,以及它们在智能爬虫技术中的关键作用,为企业提供数据引擎和安全防护的解决方案。第一部分:背景介绍跨界电商已成为全球贸易的重要组成部分,为企业提供了巨大的市......
  • Socks5代理、IP代理与网络安全:保护你的爬虫和隐私
    在数字时代,数据是黄金,网络安全成为至关重要的问题。无论是保护个人隐私还是进行爬虫数据采集,代理技术已经成为网络工程师的必备工具。本文将深入探讨Socks5代理、IP代理以及它们在网络安全和爬虫应用中的重要性。1.了解Socks5代理Socks5代理是一种网络协议,允许应用程序通过中间服......
  • 代理IP和Socks5代理:跨界电商与爬虫的智能引擎
    跨界电商,作为全球市场的一部分,对数据的需求越来越大。同时,随着互联网的发展,爬虫技术也在不断演进,成为了跨界电商的关键工具之一。然而,随之而来的是网站的反爬虫机制和网络安全风险。在这种情况下,代理IP和Socks5代理应运而生,为企业提供了数据采集的解决方案和网络安全的保护。本文将......
  • 代理IP和Socks5代理:跨界电商与爬虫的智能引擎
    跨界电商,作为全球市场的一部分,对数据的需求越来越大。同时,随着互联网的发展,爬虫技术也在不断演进,成为了跨界电商的关键工具之一。然而,随之而来的是网站的反爬虫机制和网络安全风险。在这种情况下,代理IP和Socks5代理应运而生,为企业提供了数据采集的解决方案和网络安全的保护。本文将......
  • 极速上手Python分布式爬虫
    随着互联网的快速发展,获取大量数据已成为许多项目的核心需求。而Python分布式爬虫是一种高效获取数据的方法。今天,我将个大家分享一下,想要极速上手Python分布式爬虫的一些知识,让你能够迅速掌握这一实用的技术。什么是分布式爬虫?分布式爬虫是一种利用多台机器协同工作的爬虫系统。它......
  • Selenium+dddocr轻松解决Web自动化验证码识别
    大家好,我是狂师,今天给大家推荐一款验证码识别神器:dddocr。1、介绍dddocr是一个基于深度学习的OCR(OpticalCharacterRecognition,光学字符识别)库,用于识别图片中的文字。它可以识别各种类型的文字,包括印刷体、手写体、表格、条形码等。dddocr库使用了深度卷积神经网络(CNN)和循环神......