We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Change the scrapy short description
The Scrapy short description says:

> Scrapy, a fast high-level screen scraping and web crawling framework.

I think would be better:

> Scrapy, a fast high-level web crawling and screen scraping framework.

Because it highlights first its difference with simple screen scraping tools (i.e. Nokogiri. Mechanize, etc).

Screen scraping can be done even with curl and grep, but I don't think you could do web crawling with such simple tools.

Perhaps this can be an alternative:

> Scrapy, a fast and scalable web crawling and screen scraping framework.

Also the term "web data mining" can be a good fit for Scrapy (along with Scrapely and similar tools) and help to shape its roadmap.


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `setup.py`
Content:
```
1 from os.path import dirname, join
2 from setuptools import setup, find_packages
3 
4 
5 with open(join(dirname(__file__), 'scrapy/VERSION'), 'rb') as f:
6     version = f.read().decode('ascii').strip()
7 
8 
9 setup(
10     name='Scrapy',
11     version=version,
12     url='http://scrapy.org',
13     description='A high-level Web Crawling and Screen Scraping framework',
14     long_description=open('README.rst').read(),
15     author='Scrapy developers',
16     maintainer='Pablo Hoffman',
17     maintainer_email='pablo@pablohoffman.com',
18     license='BSD',
19     packages=find_packages(exclude=('tests', 'tests.*')),
20     include_package_data=True,
21     zip_safe=False,
22     entry_points={
23         'console_scripts': ['scrapy = scrapy.cmdline:execute']
24     },
25     classifiers=[
26         'Framework :: Scrapy',
27         'Development Status :: 5 - Production/Stable',
28         'Environment :: Console',
29         'Intended Audience :: Developers',
30         'License :: OSI Approved :: BSD License',
31         'Operating System :: OS Independent',
32         'Programming Language :: Python',
33         'Programming Language :: Python :: 2',
34         'Programming Language :: Python :: 2.7',
35         'Topic :: Internet :: WWW/HTTP',
36         'Topic :: Software Development :: Libraries :: Application Frameworks',
37         'Topic :: Software Development :: Libraries :: Python Modules',
38     ],
39     install_requires=[
40         'Twisted>=10.0.0',
41         'w3lib>=1.8.0',
42         'queuelib',
43         'lxml',
44         'pyOpenSSL',
45         'cssselect>=0.9',
46         'six>=1.5.2',
47     ],
48 )
49
```

Path: `scrapy/__init__.py`
Content:
```
1 """
2 Scrapy - a web crawling and screen scraping framework written for Python
3 """
4 
5 __all__ = ['__version__', 'version_info', 'optional_features', 'twisted_version',
6            'Spider', 'Request', 'FormRequest', 'Selector', 'Item', 'Field']
7 
8 # Scrapy version
9 import pkgutil
10 __version__ = pkgutil.get_data(__package__, 'VERSION').decode('ascii').strip()
11 version_info = tuple(int(v) if v.isdigit() else v
12                      for v in __version__.split('.'))
13 del pkgutil
14 
15 # Check minimum required Python version
16 import sys
17 if sys.version_info < (2, 7):
18     print("Scrapy %s requires Python 2.7" % __version__)
19     sys.exit(1)
20 
21 # Ignore noisy twisted deprecation warnings
22 import warnings
23 warnings.filterwarnings('ignore', category=DeprecationWarning, module='twisted')
24 del warnings
25 
26 # Apply monkey patches to fix issues in external libraries
27 from . import _monkeypatches
28 del _monkeypatches
29 
30 # WARNING: optional_features set is deprecated and will be removed soon. Do not use.
31 optional_features = set()
32 # TODO: backwards compatibility, remove for Scrapy 0.20
33 optional_features.add('ssl')
34 try:
35     import boto
36     del boto
37 except ImportError:
38     pass
39 else:
40     optional_features.add('boto')
41 
42 from twisted import version as _txv
43 twisted_version = (_txv.major, _txv.minor, _txv.micro)
44 if twisted_version >= (11, 1, 0):
45     optional_features.add('http11')
46 
47 # Declare top-level shortcuts
48 from scrapy.spider import Spider
49 from scrapy.http import Request, FormRequest
50 from scrapy.selector import Selector
51 from scrapy.item import Item, Field
52 
53 del sys
54
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/scrapy/__init__.py b/scrapy/__init__.py
--- a/scrapy/__init__.py
+++ b/scrapy/__init__.py
@@ -1,5 +1,5 @@
 """
-Scrapy - a web crawling and screen scraping framework written for Python
+Scrapy - a web crawling and web scraping framework written for Python
 """
 
 __all__ = ['__version__', 'version_info', 'optional_features', 'twisted_version',
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -10,7 +10,7 @@
     name='Scrapy',
     version=version,
     url='http://scrapy.org',
-    description='A high-level Web Crawling and Screen Scraping framework',
+    description='A high-level Web Crawling and Web Scraping framework',
     long_description=open('README.rst').read(),
     author='Scrapy developers',
     maintainer='Pablo Hoffman',

{"golden_diff": "diff --git a/scrapy/__init__.py b/scrapy/__init__.py\n--- a/scrapy/__init__.py\n+++ b/scrapy/__init__.py\n@@ -1,5 +1,5 @@\n \"\"\"\n-Scrapy - a web crawling and screen scraping framework written for Python\n+Scrapy - a web crawling and web scraping framework written for Python\n \"\"\"\n \n __all__ = ['__version__', 'version_info', 'optional_features', 'twisted_version',\ndiff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -10,7 +10,7 @@\n     name='Scrapy',\n     version=version,\n     url='http://scrapy.org',\n-    description='A high-level Web Crawling and Screen Scraping framework',\n+    description='A high-level Web Crawling and Web Scraping framework',\n     long_description=open('README.rst').read(),\n     author='Scrapy developers',\n     maintainer='Pablo Hoffman',\n", "issue": "Change the scrapy short description\nThe Scrapy short description says:\n\n> Scrapy, a fast high-level screen scraping and web crawling framework.\n\nI think would be better:\n\n> Scrapy, a fast high-level web crawling and screen scraping framework.\n\nBecause it highlights first its difference with simple screen scraping tools (i.e. Nokogiri. Mechanize, etc).\n\nScreen scraping can be done even with curl and grep, but I don't think you could do web crawling with such simple tools.\n\nPerhaps this can be an alternative:\n\n> Scrapy, a fast and scalable web crawling and screen scraping framework.\n\nAlso the term \"web data mining\" can be a good fit for Scrapy (along with Scrapely and similar tools) and help to shape its roadmap.\n\n", "before_files": [{"content": "from os.path import dirname, join\nfrom setuptools import setup, find_packages\n\n\nwith open(join(dirname(__file__), 'scrapy/VERSION'), 'rb') as f:\n    version = f.read().decode('ascii').strip()\n\n\nsetup(\n    name='Scrapy',\n    version=version,\n    url='http://scrapy.org',\n    description='A high-level Web Crawling and Screen Scraping framework',\n    long_description=open('README.rst').read(),\n    author='Scrapy developers',\n    maintainer='Pablo Hoffman',\n    maintainer_email='pablo@pablohoffman.com',\n    license='BSD',\n    packages=find_packages(exclude=('tests', 'tests.*')),\n    include_package_data=True,\n    zip_safe=False,\n    entry_points={\n        'console_scripts': ['scrapy = scrapy.cmdline:execute']\n    },\n    classifiers=[\n        'Framework :: Scrapy',\n        'Development Status :: 5 - Production/Stable',\n        'Environment :: Console',\n        'Intended Audience :: Developers',\n        'License :: OSI Approved :: BSD License',\n        'Operating System :: OS Independent',\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 2',\n        'Programming Language :: Python :: 2.7',\n        'Topic :: Internet :: WWW/HTTP',\n        'Topic :: Software Development :: Libraries :: Application Frameworks',\n        'Topic :: Software Development :: Libraries :: Python Modules',\n    ],\n    install_requires=[\n        'Twisted>=10.0.0',\n        'w3lib>=1.8.0',\n        'queuelib',\n        'lxml',\n        'pyOpenSSL',\n        'cssselect>=0.9',\n        'six>=1.5.2',\n    ],\n)\n", "path": "setup.py"}, {"content": "\"\"\"\nScrapy - a web crawling and screen scraping framework written for Python\n\"\"\"\n\n__all__ = ['__version__', 'version_info', 'optional_features', 'twisted_version',\n           'Spider', 'Request', 'FormRequest', 'Selector', 'Item', 'Field']\n\n# Scrapy version\nimport pkgutil\n__version__ = pkgutil.get_data(__package__, 'VERSION').decode('ascii').strip()\nversion_info = tuple(int(v) if v.isdigit() else v\n                     for v in __version__.split('.'))\ndel pkgutil\n\n# Check minimum required Python version\nimport sys\nif sys.version_info < (2, 7):\n    print(\"Scrapy %s requires Python 2.7\" % __version__)\n    sys.exit(1)\n\n# Ignore noisy twisted deprecation warnings\nimport warnings\nwarnings.filterwarnings('ignore', category=DeprecationWarning, module='twisted')\ndel warnings\n\n# Apply monkey patches to fix issues in external libraries\nfrom . import _monkeypatches\ndel _monkeypatches\n\n# WARNING: optional_features set is deprecated and will be removed soon. Do not use.\noptional_features = set()\n# TODO: backwards compatibility, remove for Scrapy 0.20\noptional_features.add('ssl')\ntry:\n    import boto\n    del boto\nexcept ImportError:\n    pass\nelse:\n    optional_features.add('boto')\n\nfrom twisted import version as _txv\ntwisted_version = (_txv.major, _txv.minor, _txv.micro)\nif twisted_version >= (11, 1, 0):\n    optional_features.add('http11')\n\n# Declare top-level shortcuts\nfrom scrapy.spider import Spider\nfrom scrapy.http import Request, FormRequest\nfrom scrapy.selector import Selector\nfrom scrapy.item import Item, Field\n\ndel sys\n", "path": "scrapy/__init__.py"}], "after_files": [{"content": "from os.path import dirname, join\nfrom setuptools import setup, find_packages\n\n\nwith open(join(dirname(__file__), 'scrapy/VERSION'), 'rb') as f:\n    version = f.read().decode('ascii').strip()\n\n\nsetup(\n    name='Scrapy',\n    version=version,\n    url='http://scrapy.org',\n    description='A high-level Web Crawling and Web Scraping framework',\n    long_description=open('README.rst').read(),\n    author='Scrapy developers',\n    maintainer='Pablo Hoffman',\n    maintainer_email='pablo@pablohoffman.com',\n    license='BSD',\n    packages=find_packages(exclude=('tests', 'tests.*')),\n    include_package_data=True,\n    zip_safe=False,\n    entry_points={\n        'console_scripts': ['scrapy = scrapy.cmdline:execute']\n    },\n    classifiers=[\n        'Framework :: Scrapy',\n        'Development Status :: 5 - Production/Stable',\n        'Environment :: Console',\n        'Intended Audience :: Developers',\n        'License :: OSI Approved :: BSD License',\n        'Operating System :: OS Independent',\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 2',\n        'Programming Language :: Python :: 2.7',\n        'Topic :: Internet :: WWW/HTTP',\n        'Topic :: Software Development :: Libraries :: Application Frameworks',\n        'Topic :: Software Development :: Libraries :: Python Modules',\n    ],\n    install_requires=[\n        'Twisted>=10.0.0',\n        'w3lib>=1.8.0',\n        'queuelib',\n        'lxml',\n        'pyOpenSSL',\n        'cssselect>=0.9',\n        'six>=1.5.2',\n    ],\n)\n", "path": "setup.py"}, {"content": "\"\"\"\nScrapy - a web crawling and web scraping framework written for Python\n\"\"\"\n\n__all__ = ['__version__', 'version_info', 'optional_features', 'twisted_version',\n           'Spider', 'Request', 'FormRequest', 'Selector', 'Item', 'Field']\n\n# Scrapy version\nimport pkgutil\n__version__ = pkgutil.get_data(__package__, 'VERSION').decode('ascii').strip()\nversion_info = tuple(int(v) if v.isdigit() else v\n                     for v in __version__.split('.'))\ndel pkgutil\n\n# Check minimum required Python version\nimport sys\nif sys.version_info < (2, 7):\n    print(\"Scrapy %s requires Python 2.7\" % __version__)\n    sys.exit(1)\n\n# Ignore noisy twisted deprecation warnings\nimport warnings\nwarnings.filterwarnings('ignore', category=DeprecationWarning, module='twisted')\ndel warnings\n\n# Apply monkey patches to fix issues in external libraries\nfrom . import _monkeypatches\ndel _monkeypatches\n\n# WARNING: optional_features set is deprecated and will be removed soon. Do not use.\noptional_features = set()\n# TODO: backwards compatibility, remove for Scrapy 0.20\noptional_features.add('ssl')\ntry:\n    import boto\n    del boto\nexcept ImportError:\n    pass\nelse:\n    optional_features.add('boto')\n\nfrom twisted import version as _txv\ntwisted_version = (_txv.major, _txv.minor, _txv.micro)\nif twisted_version >= (11, 1, 0):\n    optional_features.add('http11')\n\n# Declare top-level shortcuts\nfrom scrapy.spider import Spider\nfrom scrapy.http import Request, FormRequest\nfrom scrapy.selector import Selector\nfrom scrapy.item import Item, Field\n\ndel sys\n", "path": "scrapy/__init__.py"}]}