时间:2021-07-01 10:21:17 帮助过:3人阅读
然后看下打印的结果:
代码从头开始讲解一下:
用到的就是BeautifulSoup的框架进行信息的爬取,
hdrs = {‘User-Agent‘:‘Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)‘}
这句代码就是设置代理,然后再将url、soup的信息进行传入(设置要爬取的网址,还有就是编码方式以及页面的设置)
根据f12查看页面的标签之后,就可以通过标签选择的方式将标签里面的信息进行获取
for tag in soup.find_all(‘div‘, class_=‘disease‘): disease = tag.find(‘h1‘).get_text() disease_name = disease print(disease)
这里面就是查看页面的标签之后,通过标签的类型以及class进行设定
例如上面的疾病的名称的获取就是将页面里面class=‘disease’的里面的h1标签里面的信息进行获取
div_list = soup.find_all(‘p‘, class_=‘introduction‘) for each in div_list: introduce = each.text.strip() disease_introduce = introduce print(disease_introduce)
这里疾病的简介的获取方式和上面的是类似的,就只是就是查找class=‘introduction’的p标签里面的信息进行获取
for tag in soup.find_all(‘div‘, class_=‘list_left‘): uls = tag.find(‘ul‘,class_="disease_basic") m_span = uls.findAll(‘span‘) # print(m_span) is_yibao = m_span[1].contents[0]#是否医保 other_name = m_span[3].contents[0]#别名 fbbw = m_span[5].contents[0]#发病部位 is_infect = m_span[7].contents[0]#是否传染 dfrq = m_span[9].contents[0]#多发人群 m_a = uls.findAll(‘a‘) fbbw = m_a[0].contents[0]#发病部位
这些就是将class=‘list_left’的div里面的信息进行获取,这些信息都是存在审判标签中
然后我们根据span的下标进行获取就可以了
如果想讲这些信息添加到数据库,其实也很简单,下面说一下将信息添加到数据库的方法(这里是mysql数据库,数据库的连接上都是大同小异)
首先想要连接数据库,就要先引入数据库的链接包:
import pymysql
print(‘连接到mysql服务器...‘) db = pymysql.connect( host="localhost", user="用户名", passwd="密码", port=端口(基本上是3306), db="数据库名称", charset=‘utf8‘, cursorclass=pymysql.cursors.DictCursor) print(‘连接上了!‘) cursor = db.cursor()
这个就是将数据库的链接信息进行设置,然后连接成功,在控制台显示"连接上了"
insert_color = ("INSERT INTO for_health(id,problem,introduce,solution,problem_id,drug,paqu_address,is_infect,symptom,cure_rate)" "VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)") dese = (id,problem,introduce,solution,problem_id,drug,paqu_address,is_infect,symptom,cure_rate) cursor.execute(insert_color, dese) db.commit()
这些就是将数据传入数据库的操作了
当然变量名是自己进行设定的,这里面的insert_color就是sql
dese就是一个变量的集合
然后将这两个参数进行传递到cursor.execute,然后commit进行数据的提交,就可以了
用python进行网页爬取,数据插入数据库
标签:开始 decode address 服务器 现在 数据 服务 value ase