首页 > 其他分享 >改进了headers的爬虫(Cookies)

改进了headers的爬虫(Cookies)

时间:2023-09-18 20:24:55浏览次数:38  
标签:Cookies url list request 爬虫 content headers Hm page

import urllib.request
from lxml import etree
def create_request(page):
    if page == 1:
        url = 'http://www.chinaeol.net/hjxw/gnxw'
    else:
        url = 'http://www.chinaeol.net/hjxw/gnxw/index_' + str(page) + '.shtml'
    headers = {
        'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
        #'Accept-Encoding':'gzip, deflate',
        #'Accept-Language':'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7',
        #'Cache-Control':'max-age=0',
        'Cookie': 'Hm_lvt_0960aaf0c90823ef3de3f164788e264f=1695037542; Hm_lpvt_0960aaf0c90823ef3de3f164788e264f=1695037542; Hm_lvt_fb9e17abd59ff9a2c324890c5a701eca=1695037543; Hm_lvt_2ed05369c38555b813edc07a4dc8e126=1695037543; Hm_lpvt_fb9e17abd59ff9a2c324890c5a701eca=1695038268; Hm_lpvt_2ed05369c38555b813edc07a4dc8e126=1695038268',
        'Host': 'www.chinaeol.net',
        'Proxy-Connection': 'keep-alive',
        'Upgrade-Insecure-Requests': '1',
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
    }
    request = urllib.request.Request(url=url,headers=headers)
    return request

def get_content(request):
    response = urllib.request.urlopen(request)
    content = response.read()
    return content

def get_hreflist(content):
    url_list = []
    tree = etree.HTML(content)
    href_list = tree.xpath('//ul[@class="cj_tianlibu"]//a/@href')
    href_list = [item for item in href_list if item != "javascript:;"]
    url = 'http://www.chinaeol.net/hjxw/gnxw/'
    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,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
            #'Accept-Encoding':'gzip, deflate',
            #'Accept-Language':'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7',
            #'Cache-Control':'max-age=0',
            'Cookie': 'Hm_lvt_0960aaf0c90823ef3de3f164788e264f=1695037542; Hm_lpvt_0960aaf0c90823ef3de3f164788e264f=1695037542; Hm_lvt_fb9e17abd59ff9a2c324890c5a701eca=1695037543; Hm_lvt_2ed05369c38555b813edc07a4dc8e126=1695037543; Hm_lpvt_fb9e17abd59ff9a2c324890c5a701eca=1695038268; Hm_lpvt_2ed05369c38555b813edc07a4dc8e126=1695038268',
            'Host': 'www.chinaeol.net',
            'Proxy-Connection': 'keep-alive',
            'Upgrade-Insecure-Requests': '1',
            'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
        }
        request = urllib.request.Request(url=url,headers=headers)
        response = urllib.request.urlopen(request)
        content = response.read()
        tree = etree.HTML(content)
        name = tree.xpath('//span[@class="toptitle"]/text()')[0]+'.txt'
        name = name.replace("/","")
        save_path = './生态环境部宣传教育中心/国内新闻/'+name
        text = tree.xpath('//div[@class="TRS_Editor"]//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__':
    start_page = 1
    end_page = 1
    
    for page in range(start_page,end_page+1):

        request = create_request(page)  # 导入了第page页
        content = get_content(request)  # 获得第page页的源代码
        url_list = get_hreflist(content) # 获得第page页所有的新闻链接
        #download_text(url_list) #下载第page页所有的新闻文本
        print('第' + str(page) + '页下载完成')

        #except:
           # print("failed to reach page {}".format(page))

 

标签:Cookies,url,list,request,爬虫,content,headers,Hm,page
From: https://www.cnblogs.com/qtdwz/p/17712960.html

相关文章

  • 一个稍微用了下selenium的爬虫框架
    fromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.common.byimportByfromselenium.webdriver.chrome.optionsimportOptionsdefgethreflist(url)#Settheheadersfortherequestheaders={......
  • 爬虫随笔(一)
    最近因为工作和研究方向的变动,开始学习爬虫,现在是刚刚入门,简单写一些,爬虫入门的建议。一、基础知识(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分布式爬虫的一些知识,让你能够迅速掌握这一实用的技术。什么是分布式爬虫?分布式爬虫是一种利用多台机器协同工作的爬虫系统。它......