爬虫学习记录
获取58同城上的招聘信息
爬虫的意义
我们编写爬虫就是把网页中的关键信息爬取下来,然后做分析,现在是数据时代,所以数据是很重要的资源。爬虫可以帮助我们获取这些资源。
本文的目的
现在的爬虫技术很多,但是以python为主,作为初学者我建议不要使用太多现成的工具,这样无法学习到里面的技术,比如你在使用scrapy时都很难了解它在内部调用了什么,这篇文章也将用urllib2+beautifulSoup+mysql来获取58同城上的招聘信息,最关键的是分析网页源代码,找到需要的信息。
获取网页源码
url = “http://hz.58.com/tech/” + “pn”+str(start)+"/"
request = urllib2.Request(url=url,headers=headers)
response = urllib2.urlopen(request,timeout=60)
html = response.read().decode('utf-8')
soup = BeautifulSoup(html,'lxml')
获取58的列表信息
for item in all_dl:
job = item.find('dt').find('a')
info = getdatas.getInfo(job['href'])
if info != 0:
count += insertmysql.insertMysql(info)
print "现在的数据量为%d"%(count)
time.sleep(5)
start = start + 1
其中的每一个item就是一条招聘信息,然后进入这个二级地址,获取相关的招聘信息
二级网址
在这个部分首先也要获取网页源代码,然后用beautifulSoup来匹配关键信息,beautifulSoup的用法可以在官网看看。
def getInfo(url):
headers = {}
headers[“User-Agent”] = “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36”
try:
# proxies = {'http': proxy_ip}
request = urllib2.Request(url=url, headers=headers)
# request.set_proxy(proxy_ip, 'http')
response = urllib2.urlopen(request)
html = response.read().decode('utf-8')
# html = requests.get(url, headers=headers, proxies=proxies)
html = BeautifulSoup(html, 'lxml')
info = {}
info['id'] = uuid.uuid4()
info['