0
**keyword = ''

'''To obtain keyword'''
def test():`enter code here`
    keywords = list()
    while True:
        print('what do you want to do?(a: add a key word for searching, q:quit adding words and start)')
        command = input('command:')
        if command == 'a':
            word = input('keyword: ')
            if word not in keywords:
                keywords.append(word)
        elif command == 'q':
            break
        else:
            print('please input a valid command')
    if len(keywords) == 0:
        return
    search_string = ''
    for keyword in keywords:
        search_string += keyword
        search_string += '+'
    search_string = search_string[:-1]
    print(search_string)

    search_url = 'http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-' \
                 'bool.html&r=0&f=S&l=50&TERM1=' + search_string + '&FIELD1=&co1=AND&TERM2=&FIELD2=&d=PTXT'

    return search_url
'''Incoming url start the scrapy crawle'''
class Uspto(scrapy.Spider):
    name = 'uspto'
    #allowed_domains = ['http://patft.uspto.gov/']
    #start_url = 'http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=0&f=S&l=50&TERM1=water&FIELD1=&co1=AND&TERM2=&FIELD2=&d=PTXT'

    allowed_domains = ["http://patft.uspto.gov"]
    keyword = test()

    start_urls = [
        #"http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=0&f=S&l=50&TERM1=python&FIELD1=&co1=AND&TERM2=&FIELD2=&d=PTXT",
        keyword,

    ]
**

enter image description here Error screenshot

From the keyboard input keywords according to the keyword construction link, then start the crawler, the problem now is my access to the keyword method problems

Matcha00
  • 1
  • 1

1 Answers1

0

Based on your error message NameError: name 'a' is not defined, it seems that you are using python 2 instead of python 3, if so, use raw_input() instead of input():

command = raw_input("commands:")

raw_input() returns the string entered by the user, you could refer to this answer to know more details about input and raw_input.

Community
  • 1
  • 1
Tiny.D
  • 6,466
  • 2
  • 15
  • 20