专栏首页BORBERThird python spider

Third python spider

爬取 58同城 招聘信息 ?

这是我写的的第三个爬虫用来爬取 58同城上的招聘信息 也没有什么大用只是用来练手的,我觉得 编程是一个只有动手才能学会的东西.

这次的爬虫和前两次有些许不同,58 同城有自己的反爬措施.所以这次加上了限制请求频率的 time.sleap (其实 第二个爬虫也最好加入,因为我在使用第二个爬虫时,出现了远程服务器拒绝访问)

这此对于 selector 有的全新的认识 使用大大灵活了

58同城不需要注册就可以浏览 所以只要获取cookie就好

代码如下 :

from bs4 import BeautifulSoup
import os
import time
import urllib
import requests
import time

header = {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3833.0 Safari/537.36',
    'cookie':'你自己的'
}
urls = []
file = open('E:\CODE\python\out\BORBER.txt','w') #自己写
def get_urls():
    for i in range(1,19):
        url = f'https://bj.58.com/ruanjiangong/pn{i}/?PGTID=0d302f82-0000-1864-07d2-bb7c42c41f7c&ClickID=2'
        urls.append(url)
    for each in urls:
        get_detials(each)

def get_detials(url):
    wb_data = requests.get(url)
    soup = BeautifulSoup(wb_data.text,'lxml')
    Address = soup.select('span.address')
    Job_names = soup.select('span.name')
    Job_salarys = soup.select('p.job_salary')
    Job_wels = soup.select('div.job_wel > span')
    Com_Names = soup.select('div.comp_name > a')
    Job_requires = soup.select('p.job_require')
    for Addres,Job_name,Job_salary,Job_wel,Com_Name,Job_require in zip(Address,Job_names,Job_salarys,Job_wels,Com_Names,Job_requires):
        data = {
            'Address':Addres.get_text(),
            'Job_name':Job_name.get_text(),
            'Job_salary':Job_salary.get_text(),
            'Job_wel':Job_wel.get_text(),
            'Com_Name':Com_Name.get_text(),
            'Job_require':Job_require.get_text().replace('&nbsp',' ')
        }
        fileprint(data)
def fileprint(data):
    file.write('地址: ' + data['Address'])
    file.write('\n')
    file.write('职位: '+data['Job_name'])
    file.write('\n')
    file.write('要求: '+data['Job_require'])
    file.write('\n')
    file.write('薪酬: '+data['Job_salary'])
    file.write('\n')
    file.write('福利: '+data['Job_wel'])
    file.write('\n')
    file.write('公司: '+data['Com_Name'])
    file.write('\n')
    file.write('\n===================================\n')

get_urls()
for url in urls:
    get_detials(url)
    time.sleep(2)

看了一下 京城就是京城啊 ?

附:爬取结果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Add Aplayer

    以下是相应的插入代码, 吸底模式可以在 body的任意地方 推荐顶部(效果可在本博客首页左下角查看) , 其他的就是在对应位置 可以在 md文件中插入使用 内联...

    BORBER
  • A failed spider

    在爬取完漫画网站之后,我在想,我还能用自己浅薄的知识做点什么,但实在是因为自己 python的基本功不够扎实,以及自己的需求过于模糊,所以最后还是选择了爬取笔趣...

    BORBER
  • Second python spider pro

    写完第二个爬虫之后,写了好几个,但是总归是因为技术原因,达不到自己想要的效果,在重写第二个爬虫时这种感觉尤为强烈,所以写完这个之后,回去继续看剩下的网课,充实自...

    BORBER
  • 快速学习-ElasticJob线路规划

    cwl_java
  • Kotlin协程实现原理:CoroutineScope&Job

    如果你还没有接触过协程,推荐你先阅读这篇入门级文章What? 你还不知道Kotlin Coroutine?

    Rouse
  • 第三章:Job和JobDetail的更多细节

    正如你在第二章:Quartz API、调度任务以及触发器看到的,org.quartz.Job很容易实现,在接口中只有一个execute方法。本节主要关注:Job...

    Throwable
  • Spark Streaming 不同Batch任务可以并行计算么?

    其实Stage,Task都是Spark Core里就有的概念,Job 在Streaming和Spark Core里的概念则是不一致的。Batch则是Stream...

    用户2936994
  • 学会五种常用异常值检测方法,亡羊补牢不如积谷防饥

    在统计学中,是并不属于特定族群的数据点,是与其它值相距甚远的异常观测。离群点是一种与其它结构良好的数据不同的观测值。

    统计学家
  • 免费获取Cisco Smart Install远程命令执行漏洞自查工具

    Smart Install远程代码执行漏洞 2018年3月28日,Cisco官方发布了CiscoIOS和IOS XE软件存在多个远程代码执行漏洞的安全公告,其中...

    安恒信息
  • pytest文档45-allure添加环境配置(environment)

    在 allure 报告首页 ENVIRONMENT 显示 ‘There are no environment variables’ 没有环境变量的配置信息。 环...

    上海-悠悠

扫码关注云+社区

领取腾讯云代金券