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


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

    1. import pandas as pd
    2. import requests
    3. from lxml import etree
    4. # 通过Chrome浏览器F12来获取cookies,agent,headers
    5. cookies ={'ssxmod_itna2':'eqfx0DgQGQ0QG=DC8DXxxxxx',
    6. 'ssxmod_itna':'euitGKD5iIgGxxxxx'}
    7. agent ='Mozilla/5.0 (Windows NT 10.0; Win64; x64)xxxxxxx'
    8. headers = {
    9. 'User-Agent' : agent,
    10. 'Host':'www.xxx.com',
    11. 'Referer':'https://www.xxx.com/'
    12. }
    13. #建立会话
    14. session = requests.session()
    15. session.headers = headers

    cookies获取方式

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

    agent获取方式

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

    测试访问是否成功

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

    访问成功的话进入下一步

    一般翻页后查看网址变化就能得出网址规则

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

    最后将结果导入csv文件;编码格式utf-8-sig防止乱码

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

  • 相关阅读:
    外包干了2年,彻底废了...
    QT下使用QChart绘制曲线
    码农的转型之路-这款轮子可以造吗?
    小米集团收入增长失速已久:穿越寒冬,雷军的路走对了吗?
    RabbitMQ-基本概念
    今日准备注销CSDN专栏
    000.Python解释器与Pycharm编辑器安装
    微表情识别API + c++并发服务器系统
    Elastic Stack 8.11:引入一种新的强大查询语言 ES|QL
    数据结构题型17-树、森林
  • 原文地址:https://blog.csdn.net/almost_change_it/article/details/133771453