出现的错误有:
源代码为:
import bs4
import requests
from ..items import JobuiItem
import scrapy
class JobuiSpider(scrapy.Spider):
name='jobui'
allowed_domains=['www.jobui.com']
start_urls=['https://www.jobui.com/rank/company/']
def parse(self,response):
bs=bs4.BeautifulSoup(response.text,'html.parser')
urls_list=[]
all_url=bs.find_all(class_='textList flsty cfix')
for urls in all_url:
url=urls.find_all('a')
for corporate in url:
real_url=('https://www.jobui.com%sjobs'%(corporate['href']))
urls_list.append(real_url)
yield scrapy.Request(real_url,callback=self.parse_job)#关键,在找到了各个公司的网址后需要返回real_rul然后使用方法request和callback属性调用到parse_hob的方法就是下一个方法,用来进行下一步爬虫
def parse_job(self,response):
bs=bs4.BeautifulSoup(response.text,'html.parser')#解析上一步得出的网址公司网址
company_name=bs.find(id='companyH1').text
datas=bs.find_all('div',class_='c-job-list')
for data in datas:
item=JobuiItem()
item['company_name']=company_name
item['position']=data.find('a').find('h3').text
item['address']=data.find('span')[0]['title']
item['requriement']=data.find('span')[1]['title']
print(item['company_name'],item['position'],item['address'],item['requriement'])
print('就在这上方')
yield item
address 这个字段定义了没
给一下这行代码的html图
datas=bs.find_all('div',class_='c-job-list')