python使用lxml及request爬取-python+lxml 爬取网页信息及储存

用lxml来爬取招聘网站信息

用requests获取网页

解析网页内容

保存数据成csv格式

用requests获取网页

import requests

from lxml import etree

import time

import numpy as np

import pandas as pd

if __name__ == '__main__':

target = 'https://www.zhipin.com/c100010000/?query=数据分析&period=1&page='

targetpage = '&ka=page-'

page = 1

headers={'user-agent':'Mozilla/6.0'}

target targetpage 以及page用于定义翻页信息收集

网页内容将储存在定义的变量里

title = []

title_link = []

salary = []

location = []

date_update=[]

company_name = []

company_info = []

job_exp = []

解析网页内容

获取3页招聘网站基本信息

for n in range(1,4):

oburl = target+str(page)+targetpage+str(page)

page +=1

html = requests.get(url=oburl,headers=headers)

ab = etree.HTML(html.text)

title = np.concatenate((title,ab.xpath('//div[@class="job-title"]/text()')))

title_link = np.concatenate((title_link,ab.xpath('//div[@class="job-title"]/ancestor::a/@href')))

salary = np.concatenate((salary,ab.xpath('//span[@class="red"]/text()')))

location = np.concatenate((location,ab.xpath('//div[@class="info-primary"]/p/child::node()[1]')))

job_exp = np.concatenate((job_exp,ab.xpath('//div[@class="info-primary"]/p/child::node()[3]')))

date_update = np.concatenate((date_update,ab.xpath('//div[@class="info-publis"]/p/text()')))

company_name=np.concatenate((company_name,ab.xpath('//div[@class="company-text"]//a/text()')))

company_info=np.concatenate((company_info,ab.xpath('//div[@class="company-text"]/p/child::node()[1]')))

time.sleep(1)

组合变量形成dataframe格式,并且命名列名

data = pd.DataFrame([title,salary,location,job_exp,company_name,company_info,date_update,title_link]).T

data.rename(columns={0:'title',1:'salary',2:'location',3:'job_exp',4:'company name',5:'company info',6:'date_update',7:'link'},inplace=True)#

保存数据成csv格式

import csv

myfile = 'web_spyder_name.csv'

with open(myfile, 'wb') as csvfile:

data.to_csv(myfile, encoding='utf_8_sig')

储存成csv格式文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值