当前位置: 首页 > news >正文

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

因为很多网站都增加了登录验证,所以需要添加一段利用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.xxx.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) #数据解析#取到企业名对应xpathname = [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文件;编码格式utf-8-sig防止乱码

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

http://www.lryc.cn/news/193644.html

相关文章:

  • Python —— 接口自动化(1)
  • 【MySQL】关于MySQL升级到8.0版本的实践方案
  • 【Python-Django】基于TF-IDF算法的医疗推荐系统复现过程
  • 车辆车型识别系统python+TensorFlow+Django网页界面+算法模型
  • 小程序如何设置各种时间参数
  • CSS变量 var()的用法
  • 设计模式——21. 中介者模式
  • fastjson 1.2.47 远程命令执行漏洞
  • 【k8s 开发排错】k8s组件开发排错之pprof
  • 记录一次典型oom的处理过程
  • centos离线安装telnet、traceroute工具
  • 【java学习—七】对象的实例化过程(33)
  • P4451 [国家集训队] 整数的lqp拆分
  • Mysql 日常命令记录
  • 可视化上证50结构图
  • STM32_PID通用算法增量式和位置式
  • Spark的数据输入、数据计算、数据输出
  • Windows端口号被占用的查看方法及解决办法
  • Web3 整理React项目 导入Web3 并获取区块链信息
  • 基于SpringBoot的旅游网站开题报告
  • 基于SSM的班级事务管理系统
  • 基于Spring Boot开发的汽车租赁管理系统
  • 精品基于django的高校竞赛比赛管理系统Python
  • RustDay04------Exercise[01-10]
  • ARM day9
  • 【TensorFlow2 之013】TensorFlow-Lite
  • Java基础--阳光总在风雨后,请相信彩虹
  • 高级网络调试技巧:使用Charles Proxy捕获和修改HTTP/HTTPS请求
  • Discuz大气游戏风格模板/仿lol英雄联盟游戏DZ游戏模板GBK
  • 206、SpringBoot 整合 RabbitMQ 的自动配置类 和 对应的属性处理类 的知识点