1 #!usr/bin/env python 2 #coding:utf-8 3 4 import sys; 5 reload(sys); 6 sys.setdefaultencoding('utf-8'); 7 8 import urllib2 9 from bs4 import BeautifulSoup10 11 filename = open('work.txt','w')12 13 user_anget = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'}14 15 header = {16 'User-Agent' : user_anget,17 }18 url = 'http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8D%97%E6%98%8C&kw=%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90&sm=0&p='19 20 #filename = open('work_url.txt','w')21 url_list = []22 i = 123 while i<3:24 full_url = url + str(i)25 request = urllib2.Request(full_url)26 response = urllib2.urlopen(request)27 soup = BeautifulSoup(response,'lxml',from_encoding='utf-8')28 #29 links = soup.find_all('td',class_='zwmc')30 #print links31 for link in links:32 new_url = link.find('a')['href']33 print new_url34 url_list.append(new_url)35 i +=136 print url_list37 38 filename = open('work.txt','a')39 while len(url_list) != 0:40 new_url = url_list.pop()41 request = urllib2.Request(new_url)42 response = urllib2.urlopen(request)43 soup = BeautifulSoup(response,'lxml',from_encoding='utf-8')44 #商品专员/数据分析员
45 title = soup.find('div',class_="inner-left fl").find('h1')46 #47 clearfix = soup.find('ul',class_="terminal-ul clearfix")48 #
49 cont = soup.find('div',class_="tab-inner-cont")50 #print biaoti.get_text(),yaoqiu.get_text(),zhiwu.get_text()51 52 filename.write(new_url + '\n')53 filename.write(title.get_text())54 filename.write(clearfix.get_text())55 filename.write(cont.get_text())56 filename.close()57 print url_list
不足:
1、获取网页的代码可以重复利用,这里没有写好!懒,主要是。
2、还是没有用面向对象编程(白天试了,有些地方不懂,就pass了)
3、没有按自己的要求保存数据。
4、可能会抓取到重复,因为用的是列表,没有用集合。
5、抓取的网页信息是从最后一项开始抓取的,这样也不好。
我怎么感觉写的不足越来越多了啊 ,加了好几条了,(⊙﹏⊙)b,算了不写了,就这样吧,在写下去都没有信心了!
不过总体来说还是完成了自己想要实现的目的,抓取每个工作的网址,并根据抓取的网址老获取想要的信息!
有点进步,最起码代码就长了点了。