用python做数据库交互检索

前言

名字起的不好,大致意思呢就是怎么从本地上传数据到网站上,将网站的结果爬下来做汇总
我在这里将举两个例子来说明:

第一个例子

这里呢我是学习:https://morvanzhou.github.io/tutorials/data-manipulation/scraping/3-01-requests/
所有的例子都来源于这个网站
那么我们先点开网页看看是什么内容:http://pythonscraping.com/pages/files/form.html

image.png

也就是说,可以在对话框内输入内容,然后交互到后端取查找,然后将查找的结果输入到前端,让我们看见,它们之间用PHP连接,通过表单交互
image.png

我们看一下这个对话框:
image.png

form是表单的意思,镶嵌在HTML里面,做到是post请求,action后面就是PHP了
我们往对话框里输入东西:
image.png

最后会返回个页面
image.png

我们看一下这个页面的一些基本信息:
image.png

我们在网页上发送个post请求,然后返回我们要的结果

我们再来看看python怎么实现:

import requests

data = {'firstname': 'xx', 'lastname': 'yy'}
r = requests.post('http://pythonscraping.com/pages/files/processing.php', data=data) #这里的网址是返回结果页面的,以php结尾的
print(r.text)
image.png

这样就得到我们的结果了,和网页上看到的一样,值得注意的是,data里面的index要与你提交输入框的参数name的名称一致

第二个例子

我利用某高校的蛋白质预测网站:http://ibi.hzau.edu.cn/FDserver/cipred.php
我们先来复习一下:

image.png

对于这个网站
image.png

白色对话框输入的我们想查询的序列
image.png

按钮框的特点是有ButtonRatePred这个标签
image.png

radio这个标签则是选择两个序列比对还是多个序列比对
用python实现:

from urllib.request import urlopen
from urllib.parse import urlencode
import re

ProSeq = '''ADKELKFLVVDDFSTMRRIVRNLLKELGFNNVEEAEDGVDALNKLQAGGYGFVISDWNMP
NMDGLELLKTIRADGAMSALPVLMVTAEAKKENIIAAAQAGASGYVVKPFTAATLEEKLNKIFEKLGM'''
url="http://ibi.hzau.edu.cn/FDserver/cido.php" #这里的网址是返回结果页面的,以php结尾的
inputs = {'textarea': ProSeq, 'radiobutton': 'Two',
 'ButtonRatePred': 'Predict Folding Rate'}
#这里把我们上边提到的几个标签做成字典,然后标签作为键,值则是我们的输入
params = bytes(urlencode(inputs),encoding='utf-8')
#将input解码
f = urlopen(url, params) #post请求
result = f.read()
f.close()
rs = str(result)
r = re.compile(r'\d+')
mo = r.findall(rs)
print(mo)

我要的结果

image.png

特此说明下:这里要查询的结果是提交查询返回结果的页面的url,在这个例子中是:http://ibi.hzau.edu.cn/FDserver/cido.php

参考:
https://morvanzhou.github.io/tutorials/data-manipulation/scraping/3-01-requests/

你可能感兴趣的:(用python做数据库交互检索)