今天继续学习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()
注:没找到各个学校对应的分数线与报录比,先用固定数字代替