4/22学习总结

今天继续学习python想要爬取研究生招生信息网的数据并存入数据库

遇到的困难:爬取数据还不熟练,我只得到了一行一列/哭唧唧

总结:

import bs4
import pymysql
import requests
from bs4 import BeautifulSoup
import pandas as pd

def download_all_htmls():
    htmls=[];
    for idx in range(2):
     url=f"https://yz.chsi.com.cn/sch/?start={idx*20}"
     print("craw html",url)
     r=requests.get(url)
     if r.status_code!=200:
        raise Exception("error")
     htmls.append(r.text)
    return htmls
htmls=download_all_htmls()

def parse_single_html(html):
    name1=[];
    soup=BeautifulSoup(html,'html.parser')

    tbody=soup.find('tbody')
    print("1")
    if isinstance(tbody, bs4.element.Tag):
         name=tbody.find('tr').find('td').find('a')
         name1.append(name.getText().replace(' ',''))
         print(name1)
    return name1
for idex in range(2):
    name2=parse_single_html(htmls[idex])

conn = pymysql.connect(
        host='localhost',  # 我的IP地址
        port=3306,  # 不是字符串不需要加引号。
        user='root',
        password='zhangziyi1670',
        db='yanhu',
        charset='utf8'
    )
cursor = conn.cursor()  # 获取一个光标
for idex in range(2):
  sql = 'insert into school (name,fenshu,bili) values (%s,%s,%s);'
  name = parse_single_html(htmls[idex])
  fenshu=420
  bili=0.2
  cursor.execute(sql, [name,fenshu,bili])
print()

conn.commit()

cursor.close()
conn.close()

 

 注:没找到各个学校对应的分数线与报录比,先用固定数字代替

猜你喜欢

转载自www.cnblogs.com/wangzhaojun1670/p/12753638.html
今日推荐