繁体   English   中英

Python脚本的命令行输入

[英]Command Line input for Python Script

我想在这里做什么:

我正在尝试yelp并从特定页面获取评论。 但是,我只想修改此脚本以提供“ 饭店名称 ”作为输入。

例如:

用户输入: dennys-san-jose-5

URL: http://www.yelp.com/biz/**dennys-san-jose-5**

这是我现在正在使用的实际脚本:

from bs4 import BeautifulSoup
from urllib import urlopen
queries = 0
while queries <201:
    stringQ = str(queries)
    page = urlopen('http://www.yelp.com/biz/madison-square-park-new-york?start=' + stringQ)

    soup = BeautifulSoup(page)
    reviews = soup.findAll('p', attrs={'itemprop':'description'})
    authors = soup.findAll('span', attrs={'itemprop':'author'})

    flag = True
    indexOf = 1
    for review in reviews:
        dirtyEntry = str(review)
        while dirtyEntry.index('<') != -1:
            indexOf = dirtyEntry.index('<')
            endOf = dirtyEntry.index('>')
            if flag:
                dirtyEntry = dirtyEntry[endOf+1:]
                flag = False
            else:
                if(endOf+1 == len(dirtyEntry)):
                    cleanEntry = dirtyEntry[0:indexOf]
                    break
                else:
                    dirtyEntry = dirtyEntry[0:indexOf]+dirtyEntry[endOf+1:]
        f=open("reviews.txt", "a")
        f.write(cleanEntry)
        f.write("\n")
        f.close

    for author in authors:
        dirty = str(author)
        closing = dirty.index('>')
        dirty = dirty[closing+1:]
        opening = dirty.index('<')
        cleanEntry = dirty[0:opening]
        f=open("bla.txt", "a")
        f.write(cleanEntry)
        f.write("\n")
        f.close 
    queries = queries + 40

我正在尝试将餐厅名称作为参数读取,但是它不起作用。

我做了什么:

while queries <201:
    stringQ = str(queries)
    page = urlopen('http://www.yelp.com/biz/' + stringQ)

但这行不通。 我在命令行中提供了dennys-san-jose-5作为输入(python script.py dennys-san-jose-5)

请在这里向我提出问题以及如何解决。

问候,

从命令行读取参数,可以使用argparse

import argparse

#Define command line arguments
parser = argparse.ArgumentParser(description='Get Yelp reviews.')
parser.add_argument("-p", "--page", dest="page", required=True, help="the page to parse")

#parse command line arguments
args = parser.parse_args()

您的页面名称现在将在args.page 在此示例中,您将如下运行脚本:

>python script.py  -p dennys-san-jose-5

要么

>python script.py --page dennys-san-jose-5


编辑:

  • 如果您不需要任何奇特的东西,而只想要原始命令行输入(例如,仅在您将要使用的程序中,则无需验证输入等):

     import sys print sys.argv 
  • 如果要在程序运行时提示用户输入页面名称,请执行以下操作: Python:用户输入和命令行参数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM