我用python编写了一个脚本,它可以从excel文件中获取search input
,将它放入scraper中的input_val
变量中,并获取与搜索参数匹配的image link
。当我打印出来的时候,我得到了准确的结果。我用openpyxl
来读写这些值。你知道吗
然而,当我试图在一个新的excel文件中的每个搜索关键字旁边写填充的结果时,我被卡住了。你知道吗
在我当前的excel文件item.xlsx
中有三个搜索关键字(三部电影)。它们是:
Shutter Island
Black Swan
True Grit
如果我运行现有的scraper而不做任何修改,那么新文件中的结果如下所示:
Shutter Island
Black Swan
True Grit
image_link 1
image_link 2
image_link 3
我希望我的刮刀将获取图像链接,并写在一个新的excel文件中的每个电影旁边。因此,输出应如下所示:
Column A Column B
Shutter Island image_link 1
Black Swan image_link 2
True Grit image_link 3
这是我迄今为止尝试过的:
import requests
from bs4 import BeautifulSoup
from openpyxl import load_workbook
wb = load_workbook('item.xlsx')
ws = wb['Sheet1']
for row in range(1, ws.max_row + 1):
input_val = ws["A" + str(row)].value #the search keyword holds here
response = requests.get("http://www.boxofficemojo.com/search/?",params = {'q':input_val})
soup = BeautifulSoup(response.text,"lxml")
table = soup.select("table")[1]
for items in table.select('tr')[4:5]:
[elem.extract() for elem in soup.select("script")] #kicking out script from result
data = [img['src'] for img in items.select('td img')]
ws.append(data)
wb.save("new_one.xlsx")
下面我提供了一个例子来说明如何做到这一点。在B列中,有一个url字符串。我还添加了第三列,它利用excel中的
HYPERLINK
函数来显示a列的文本,并链接到B列中提供的所需url输出:![Excel Output](https://i.stack.imgur.com/a1QlI.jpg)
相关问题 更多 >
编程相关推荐