我有一个 Python 代码,可以返回 BBC 新闻报道的标题和第一段,但目前我必须提供链接。这是代码:
from lxml import html
import requests
response = requests.get('http://www.bbc.co.uk/news/business-40660355')
if (response.status_code == 200):
pagehtml = html.fromstring(response.text)
news1 = pagehtml.xpath('//h1[@class="story-body__h1"]/text()')
news2 = pagehtml.xpath('//p[@class="story-body__introduction"]/text()')
print("\n".join(news1) + " (BBC News)")
print("\n".join(news2))
但是这段代码依赖于我将 URL 复制到 requests.get('') 位中。
这是我尝试更改它以允许用户输入:
from lxml import html
import requests
response = input()
if (response.status_code == 200):
pagehtml = html.fromstring(response.text)
news1 = pagehtml.xpath('//h1[@class="story-body__h1"]/text()')
news2 = pagehtml.xpath('//p[@class="story-body__introduction"]/text()')
print("\n".join(news1) + " (BBC News)")
print("\n".join(news2))
但不幸的是,这返回了以下错误:
http://www.bbc.co.uk/news/world-europe-40825668
Traceback (most recent call last):
File "myscript2.py", line 5, in <module>
response = input()
File "<string>", line 1
http://www.bbc.co.uk/news/world-europe-40825668
^
SyntaxError: invalid syntax
我想知道是否有人知道通过输入让此代码工作的最佳方法,而不是依赖用户更改代码来从 URL 获取信息。
谢谢
我不知道“回答你自己的问题”是否是常见做法,但我解决了。我使用 raw_input 代替,并替换了我的 input() 但用:
my_url = raw_input()
response = requests.get(my_url)
不确定其他人是否会看到此内容,但希望它有所帮助!
这就是您要找的:
from lxml import html
import requests
url = raw_input('Enter a URL: ')
response = requests.get(url)
if (response.status_code == 200):
pagehtml = html.fromstring(response.text)
news1 = pagehtml.xpath('//h1[@class="story-body__h1"]/text()')
news2 = pagehtml.xpath('//p[@class="story-body__introduction"]/text()')
print("\n".join(news1) + " (BBC News)")
print("\n".join(news2))
要将结果放入 .txt 文件中,请使用以下命令:
with open('fileName.txt', 'a') as output:
output.write(news1 + '\n')