python爬虫练手项目之获取某地企业名录

news2024/11/18 14:35:27

因为很多网站都增加了登录验证,所以需要添加一段利用cookies跳过登陆验证码的操作

import pandas as pd
import requests
from lxml import etree
# 通过Chrome浏览器F12来获取cookies,agent,headers
cookies ={'ssxmod_itna2':'eqfx0DgQGQ0QG=DC8DXxxxxx',
	  'ssxmod_itna':'euitGKD5iIgGxxxxx'}
agent ='Mozilla/5.0 (Windows NT 10.0; Win64; x64)xxxxxxx'

headers = {
    'User-Agent' : agent,
    'Host':'www.xxx.com',
    'Referer':'https://www.xxx.com/'
}
#建立会话
session = requests.session()
session.headers = headers

cookies获取方式

chrmoe浏览器,F12,把name和value填入cookies

agent获取方式

任意点击一条网络资源,右侧headers往下翻到底

测试访问是否成功

#↓此处测试访问是否成功,成功的话返回码200
requests.utils.add_dict_to_cookiejar(session.cookies, cookies)
url = 'https://www.qixin.com/search-prov/36/3604/p1' 
response=session.get(url)
print(response)

访问成功的话进入下一步

#初始化df数据
df = pd.DataFrame(columns = ['企业名称'])

#观察翻页后网址变化规律,取10页数据
for k in range(10): 
	url = 'https://www.xxx.com/search-prov/36/3604/p' + str(k+1) + '/' 
	cookies_dict = requests.utils.add_dict_to_cookiejar(session.cookies, cookies)
	page_text = requests.get(url, headers = headers, cookies = cookies_dict).text # GET
	#print(page_text)
	tree = etree.HTML(page_text) #数据解析
	#取到企业名对应xpath
	name = [i for i in tree.xpath("//div[@class='company-title font-18 font-f6']/a/text()")]
	dic = {'企业名称':name}
	df1 = pd.DataFrame(dic)
	df = pd.concat([df,df1], axis=0)
	#print(df)
print('全部数据爬取成功')
print(df)

最后将结果导入csv文件

#将df数据写入csv文件
df.to_csv('xx企业名录.csv',index=None,encoding = 'utf-8-sig')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1082104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python每日一练(5)

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

网页报错 Uncaught TypeError: a(...).tooltip is not a function

网页报错 Uncaught TypeError: a(…).tooltip is not a function 网页上f12看了一下控制台有一个报错 :Uncaught TypeError: a(…).tooltip is not a function 排查查找了一下原因,是网页嵌套,报错原因是引入了两次jquery,注释掉…

数学建模、统计建模、计量建模整体框架的理解以及建模的步骤

数学建模、统计建模、计量建模整体框架的理解以及建模的步骤 引言正文模型的设定模型的估计建模中可能遇到的四种数据类型 模型的检验模型的应用 最后 引言 这篇博客主要写给统计或者数学专业的小白,以供快速上手建模比赛;本人将在这里整合参加建模比赛…

基于nodemailer实现邮件发送

概述 node中可用nodemailer实现邮件的发送。本文使用QQ邮箱实现邮件的发送。 实现效果 实现 1. QQ邮箱配置 首先需要开启POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,如下图所示。 生成授权码 2. 发送邮件 发送邮件的代码比较简单,如下&#xf…

197、管理 RabbitMQ 的虚拟主机

开启Rabbitmq的一些命令: 小黑窗输入: rabbitmq-plugins enable rabbitmq_management 启动控制台插件, 就是启动登录rabbitmq控制台的页面,rabbitmq_management 代表了RabbitMQ的管理界面。 rabbitmq-server 启动rabbitMQ服务器…

Jetson Orin NX 开发指南(5): 安装 OpenCV 4.6.0 并配置 CUDA 以支持 GPU 加速

一、前言 Jetson 系列的开发板 CPU 性能不是很强,往往需要采用 GPU 加速的方式处理图像数据,因此本文主要介绍如何安装带有 GPU 加速的 OpenCV,其中 GPU 加速通过 CUDA 来实现。 参考博客 Ubuntu 20.04 配置 VINS-Fusion-gpu OpenCV 4.6.…

分布式锁3:基于redis的插件redission实现分布式锁

一 redision简介 1.1 redission介绍 Redisson分布式锁是一种基于redis实现的分布式锁,它利用redis的setnx命令实现分布式锁的互斥访问。同时还支持锁的自动续期功能,可以避免因为某个进程崩溃或者网络故障导致锁无法释放的情况。 只要线程一加锁成功…

Java8实战-总结41

Java8实战-总结41 用Optional取代nullOptional 类入门应用 Optional 的几种模式创建 Optional 对象使用 map 从 Optional 对象中提取和转换值 用Optional取代null Optional 类入门 Java 8中引入了一个新的类java.util.Optional<T>。这是一个封装Optional值的类。举例来…

数据库基础(一)

数据库面试基础 注&#xff0c;本文章内容主要来自于JAVAGUIDE&#xff0c;只是结合网上资料和自己的知识缺陷进行一点补充&#xff0c;需要准备面试的请访问官方网址。 一、范式 参考链接 函数依赖&#xff1a;一张表中&#xff0c;确定X则必定能确定Y&#xff0c;则X->…

Factory-Method

Factory-Method 动机 在软件系统中&#xff0c;经常面临着创建对象的工作&#xff1b;由于需求的变化&#xff0c;需要创建的对象的具体类型经常变化。如何应对这种变化&#xff1f;如何绕过常规的对象创建方法(new)&#xff0c;提供一种“封装机制”来避免客户程序和这种“具…

【JQuery插件】手把手教你如何白瓢一个网站的全部付费资源!前端狂喜

视频讲解地址&#xff1a;https://www.bilibili.com/video/BV1bm4y157GF/ 网站地址&#xff1a;https://www.jq22.com/ 大家好&#xff0c;这一集给大家分享一个好用的JQuery插件网站&#xff0c;当然&#xff0c;更主要的是教大家如何白瓢这个网站上的资源&#xff0c;这个网…

Harmony ArkTS语言

ArkTS语言 前言正文一、声明式UI二、数据列表① 创建ArkTS文件② 添加资源③ 样式④ 组件⑤ 标题组件⑥ 列表头组件⑦ 列表Item组件⑧ 组件生命周期⑨ 渲染列表数据⑩ 单选 三、源码 随着华为宣布鸿蒙后续的版本不再兼容Android应用之后&#xff0c;对于现在的开发环境来说有一…

Databend join reorder 策略

join order 的重要性 Join order 是指在执行SQL查询时&#xff0c;决定多个表进行 join 的顺序。它是数据库查询优化的一个重要方面&#xff0c;对查询性能和效率有着重要的影响&#xff0c; 不同的 join order 对性能可能有数量级的影响。 优化器优化 join order 的核心流程…

springboot项目Html页面引入css文件不生效

我的出错原因&#xff1a; 在调用css文件时&#xff1a; <link rel"stylesheet" type"text/css" href"/static/css/style.css" /> 这里我多加了一个/static,而使得css样式不生效 因为在springboot项目中&#xff0c;静态资源是默认存…

【每日一题】151. 反转字符串中的单词

151. 反转字符串中的单词 - 力扣&#xff08;LeetCode&#xff09; 给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符…

MySQL中使用函数会使索引失效?

文章目录 1、前置准备2、ChatGPT的答案3、实践证明SQL1SQL2SQL3SQL4SQL5 4、总结 1、前置准备 首先创建我们要测试的库表 CREATE TABLE lianhe_index (id int(11) NOT NULL AUTO_INCREMENT COMMENT id,name varchar(255) DEFAULT NULL,age int(11) DEFAULT NULL,number int(1…

leetCode 115.不同的子序列 动态规划 + 滚动数组(优化)

给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数&#xff0c;结果需要对 10^9 7 取模 示例 1&#xff1a; 输入&#xff1a;s "rabbbit", t "rabbit" 输出&#xff1a;3 解释&#xff1a;如下所示, 有 3 种可以从 s 中得…

VS2017+QT+PCL环境配置

1、前置知识 C++ Qt VTK/OPenGL喧杂C 2、环境搭建 1、visual studio 2017安装,从官网上下载对应安装程序。选择C++安装即可 2、Qt安装若是没有账号和密码,选择dont have qt accout? Sign up 根据自己的项目需要选择安装那些组件 2、PCL安装 下载地址:https://github.co…

matlab绘制尖角colorbar

Matlab代码 cmap [69 117 180116 173 203171 217 233254 224 144253 174 77244 109 67215 48 39165 0 38]/255; %画图的部分代码 figure set(gcf,outerposition,get(0,screensize)) ax axes(Position,[0.2 0.2 0.6 0.6]); % pos需要自己设置位置 h colorbar; % colormap(ax…

黑客技术(网络安全)——自学思路

如果你想自学网络安全&#xff0c;首先你必须了解什么是网络安全&#xff01;&#xff0c;什么是黑客&#xff01;&#xff01; 1.无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&#xff0c;例如 Web 安全技术&#xff0c;既有 Web 渗透2.也有 Web 防…