突发奇想地总结1.正则2018-11-01

https://xiaoyuan.zhaopin.com/full/jobs
直接复制审查的内容,或者html

  1. 我们需要找到一个合适的网址,例如:https://xiaoyuan.zhaopin.com/full/jobs ,审查之后在源代码找到相应的位置,最好是一行的源代码,不进行跨行的。
    image.png
  2. 方格类型,不是椭圆类型,椭圆类型源代码跨行需要在python语句后面增加内容,后面进行补充。


    image.png

    2.1 对比看出结果


    image.png
  3. 找的元素不是义务加载的,以下


    image.png
  4. 在使用python爬虫爬取数据的时候,经常会遇到一些网站的反爬虫措施,一般就是针对于headers中的User-Agent,如果没有对headers进行设置,User-Agent会声明自己是python脚本,而如果网站有反爬虫的想法的话,必然会拒绝这样的连接。而修改headers可以将自己的爬虫脚本伪装成浏览器的正常访问,来避免这一问题。
    5.re.S的作用
    https://www.jb51.net/article/146384.htm
    作者:Tank丶Farmer
    链接:https://www.jianshu.com/p/97b081534d7e
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  5. 正则表达式中,“.”的作用是匹配除“\n”以外的任何字符,也就是说,它是在一行中进行匹配。这里的“行”是以“\n”进行区分的。a字符串有每行的末尾有一个“\n”,不过它不可见。
    如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始,不会跨行。而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,将“\n”当做一个普通的字符加入到这个字符串中,在整体中进行匹配。

第一次程序

import requests
import re

headers ={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}

url=url='https://xiaoyuan.zhaopin.com/full/jobs'

https://xiaoyuan.zhaopin.com/full/jobs'
res = requests.get(url,headers=headers)
names=re.findall('<p class="searchResultCompanyname"><span>(.*?)</span></p>',res.text)
places=re.findall('<span>城市:<em class="searchResultJobCityval">(.*?)</em></span>',res.text)
peoples=re.findall('<span>人数:<em class="searchResultJobPeopnum">(.*?)</em></span>',res.text)
types=re.findall('<span>公司类型:<em>(.*?)</em></span>',res.text)
print(name,place,people,type)

一.正则

  1. 首先引入库
import requests     
import re           #正则库
import csv         #保存csv文件调用的库
  1. 写入headers,防止封掉IP
headers ={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}
  1. 输入爬取的地址url,并且用res,可以自定义红色位置,def功能与后面存入csv联系起来用。单纯输出不需要定义函数。


    image.png
url='https://xiaoyuan.zhaopin.com/full/jobs'
res = requests.get(url,headers=headers)
  1. 审查之后,找到爬取的代码,copy html,在源代码中找到,一步一输出,判断查找的是否正确,。


    yi'bu'yi'shu'chu

一、 引入存入csv功能

  1. 在上述基础上定义函数,并对以下内容进行缩进


    image.png
  2. 加入for循环,使用writer.writerow,
    types=re.findall('<span>公司类型:<em>(.*?)</em></span>',res.text)
    for name,place,people,type in zip(names,places,peoples,types):
        print(name,place,people,type)
        writer.writerow([name,place,people,type])
image.png
  1. 加入以下内容,并对url进行改动,或者删除注释部分,在下面重新添加,但是添加的网址需要能够显示换页功能,即右侧箭头指向。
if __name__ == '__main__':
    fp = open('C:/Users/秦振凯/Desktop/text.csv', 'w', encoding='utf-8', newline='')
    writer = csv.writer(fp)
    writer.writerow(['name', 'place', 'people','type'])
    urls = ['https://xiaoyuan.zhaopin.com/full/jobs/0_0_0_0_0_-1_0_{}_0'.format(str(i)) for i in range(0, 60, 30)]
    for url in urls:
        get_info(url)
image.png
import requests
import re
import csv
headers ={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}

# url='https://xiaoyuan.zhaopin.com/full/jobs'
def get_info(url):
    res = requests.get(url,headers=headers)
    names=re.findall('<p class="searchResultCompanyname"><span>(.*?)</span></p>',res.text)
    places=re.findall('<span>城市:<em class="searchResultJobCityval">(.*?)</em></span>',res.text)
    peoples=re.findall('<span>人数:<em class="searchResultJobPeopnum">(.*?)</em></span>',res.text)
    types=re.findall('<span>公司类型:<em>(.*?)</em></span>',res.text)
    for name,place,people,type in zip(names,places,peoples,types):
        print(name,place,people,type)
        writer.writerow([name,place,people,type])

if __name__ == '__main__':
    fp = open('C:/Users/秦振凯/Desktop/text.csv', 'w', encoding='utf-8', newline='')
    writer = csv.writer(fp)
    writer.writerow(['name', 'place', 'people','type'])
    urls = ['https://xiaoyuan.zhaopin.com/full/jobs/0_0_0_0_0_-1_0_{}_0'.format(str(i)) for i in range(0, 60, 30)]
    for url in urls:
        get_info(url)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,035评论 25 707
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,711评论 2 59
  • 一直以来都是那种自认为一切良好的人,嘻嘻哈哈的过了一天又一天,总以为自己会一直是那个幸运的。可成绩出来的时候才...
    默萱阅读 106评论 0 0
  • 2018-1-29 星期一 天气:晴 最近妈妈又忙着培训,都顾不上我了。中午也不回来喂奶,就忙...
    元朗妈妈阅读 359评论 0 2
  • 一个人,一本书,一杯茶,一帘梦。有时候,寂寞是这样叫人心动。天天如此,下班回到家后依旧是泡茶、切果盘、烧水给我...
    珺公子阅读 153评论 0 0