免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6972 | 回复: 15
打印 上一主题 下一主题

如何用python写个查询下面网站并且得到信息的脚本? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2019-04-22 13:48 |只看该作者 |倒序浏览
网址是
jzsc.mohurd.gov.cn/dataservice/query/staff/list
比如查询“张三”,
然后得到
“B06120001146”,总之是这列的就可以了。
请问用python应该如何写?


如下图所示:


QQ截图20190420113807.png (45.44 KB, 下载次数: 209)

QQ截图20190420113807.png

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
2 [报告]
发表于 2019-04-23 12:52 |只看该作者
  1. import sys
  2. import requests
  3. from bs4 import BeautifulSoup

  4. url="http://jzsc.mohurd.gov.cn/dataservice/query/staff/list"
  5. header={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"}

  6. def getRegNum(name="张三"):
  7.     formdata={"ry_type":"",
  8.         "ry_reg_type":"",
  9.         "ry_name":"",
  10.         "reg_seal_code":"",
  11.         "ry_cardno":"",
  12.         "ry_qymc":"",
  13.         "complexname":name
  14.         }
  15.     r = requests.post(url,formdata,headers=header)
  16.     s = BeautifulSoup(r.text,"lxml")
  17.     for td in s.find_all("td",attrs={"data-header":"注册号(执业印章号)"}):
  18.         print(td.get_text().strip())

  19. def main():
  20.     if len(sys.argv)==1:
  21.         getRegNum()
  22.     elif len(sys.argv)==2:
  23.         getRegNum(sys.argv[1])
  24.     else:
  25.         print("useage: {} [name]".format(sys.argv[0]))

  26. if __name__ == '__main__':
  27.     main()
复制代码

  1. python test.py
  2. 津112060903926
  3. B06120001146
复制代码

评分

参与人数 1信誉积分 +5 收起 理由
萍水e相逢 + 5 赞一个!

查看全部评分

论坛徽章:
0
3 [报告]
发表于 2019-04-23 13:55 |只看该作者
回复 2# cfwyy

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\_123\ddd.py", line 2, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

这个是什么意思?
我没安装这个模块,还是?
是不是这个模块需要单独安装?

论坛徽章:
0
4 [报告]
发表于 2019-04-23 14:06 |只看该作者
回复 2# cfwyy

我猜你用的是vim编辑器,就像我一样!不然我复制到txt里面,不能自动换行

论坛徽章:
0
5 [报告]
发表于 2019-04-23 14:18 |只看该作者
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\_123\张三.py", line 31, in <module>
    main()
  File "C:\Users\Administrator\Desktop\_123\张三.py", line 24, in main
    getRegNum()
  File "C:\Users\Administrator\Desktop\_123\张三.py", line 18, in getRegNum
    s = BeautifulSoup(r.text,"lxml")
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\bs4\__init__.py", line 196, in __init__
    % ",".join(features))
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?

bug,看来得我自己解决了!

论坛徽章:
0
6 [报告]
发表于 2019-04-23 14:23 |只看该作者
在cmd窗口下
cd C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts
然后
pip install requests
pip install beautifulsoup4
pip3 install lxml

对了,你的pyhon版本是?

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
7 [报告]
发表于 2019-04-23 16:27 |只看该作者
缺库的问题 自己肯定能解决。
我还真不是用的vim,换行符的问题可能是论坛复制出来就这样了。
我python版本是3.6.4

论坛徽章:
0
8 [报告]
发表于 2019-04-24 13:54 |只看该作者
回复 7# cfwyy

你用啥调试python代码的?要是能像visual studio那样调试代码就好了

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
9 [报告]
发表于 2019-04-24 16:49 |只看该作者
回复 8# xiaomm250
不会写啥高级的代码,也不会调试,只会print

论坛徽章:
0
10 [报告]
发表于 2019-04-25 11:01 |只看该作者
回复 9# cfwyy

def main():
    if len(sys.argv)==1:
        getRegNum()
    elif len(sys.argv)==2:
        getRegNum(sys.argv[1])
    else:
        print("useage: {} [name]".format(sys.argv[0]))
这几句代码是什么意思
程序什么地方用到了sys.argv,我感觉没用到呀
不知道print("useage: {} [name]".format(sys.argv[0]))这句如何解释
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP