python爬取前程无忧网并保存数据库

目标网站:前程无忧招聘网

目标网址:https://search.51job.com/list/120000,000000,0000,00,9,99,Python,2,1.html

目标数据:(1)职位名(2)公司名(3)工作地点(4)薪资 (5)发布时间
python爬取前程无忧网并保存数据库_第1张图片下面展示代码

运行此代码的前提是您的数据库中创建一个spiders库。
那段代码被我不小心删掉了,嘻嘻。  有需要的话请留言,有时间会补上
import requests
from requests.exceptions import RequestException
import re
import csv
import pymysql

def getHTMLText(url):
    headers = {

        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36'

    }
    try: 
        r = requests.get(url, headers=headers)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except RequestException as e:
        print('error', e)

def fillHtml(html):
    data= re.compile(r'class="t1 ">.*? (.*?).*?(.*?).*? (.*?)',re.S)
    items=re.findall(data,html)
    return items

def saveHtml_sql(data):
    
    # 建立数据库连接
    db = pymysql.connect(host='localhost',user='root',password='123',port=3306,db='spiders',charset='utf8')
    cursor = db.cursor()
    
    # 创建表
    sql='''CREATE TABLE IF NOT EXISTS CTO_top(
                职位名 VARCHAR(50) NOT NULL,
                公司名 VARCHAR(50) NOT NULL,
                工作地点 VARCHAR(50) NOT NULL,
                薪资 VARCHAR(50) NOT NULL,
                发布时间 VARCHAR(50) NOT NULL,
                PRIMARY KEY (公司名))'''
    cursor.execute(sql)
    db.commit()
    
#     插入数据
    into = 'insert into CTO_top(职位名,公司名,工作地点,薪资,发布时间) values(%s,%s,%s,%s,%s)'
    for i in data:
        values = (str(i[0]),str(i[1]),str(i[2]),str(i[3]),str(i[4]))
        try:
            cursor.execute(into,values)      
            db.commit()
        except:
            db.rollback()
    db.close()
            
def main():
    for i in range(11):
        urls ={'http://search.51job.com/list/000000,000000,0000,00,9,99,python,2,'+ str(i+1)+'.html'}
        for url in urls:
            html=getHTMLText(url)
        data=fillHtml(html)
        saveHtml_sql(data)
        
main()

运行截图:
python爬取前程无忧网并保存数据库_第2张图片

建议数据库使用可视化工具;
如果在mysql命令行里操作会出现中文乱码的问题,如图:

python爬取前程无忧网并保存数据库_第3张图片

解决办法在命令行里输入:set names gbk 即可。
set names gbk

另需要将爬取的数据保存至txt文本或者csv的小可爱,请到这里自取呀
python爬取前程无忧网,将数据保存至txt及csv中

你可能感兴趣的:(python爬虫)