【发布时间】:2018-10-30 15:27:18
【问题描述】:
我尝试将 2 个 Web 抓取的列表合并到一个列表中,但它所做的只是显示一个实例。 (我已经有了姓名列表和地址列表,我只想加入他们)。
from bs4 import BeautifulSoup
import urllib.request
def get_HTML(url):
response = urllib.request.urlopen(url)
html = response.read()
return html
第一个列表:
venues_html = get_HTML('http://www.cxra.com/venues/new-york/')
soup = BeautifulSoup(venues_html, "lxml")
for venue in soup('a', attrs={'href' : '#', 'onclick' : 'return false;'}):
display (venue.text)
输出:
'Manhattan Center Studios'
'Ellis Island'
'The TimesCenter'
'The Altman Building'
'NYIT Auditorium on Broadway'
第二个列表
for info in soup.findAll('div', attrs={'class' : 'infoUnit col-md-6'}):
display (info.text)
输出:
'\n \n311 West 34th Street\r\nNew York City, 94710\n\n212.613.5536\n'
'\n \nEllis Island\r\nNew York, NY 10004\n\n212.613.5535\n'
'\n \n242 W 41st St\r\nNew York, NY 10036\n\n212.613.5535\n'
'\n \n135 W 18th St\r\nNew York, NY 10011\n\n212.613.5535\n'
'\n \n1871 Broadway\r\nNew York, NY 10023\n\n212.613.5536\n'
尝试加入两者:
print ("Venue: " + venue.text + info.text)
输出:
Venue: NYIT Auditorium on Broadway
1871 Broadway
New York, NY 10023
212.613.5536
我希望它为所有不同的场所都做到这一点,而不仅仅是一个。我尝试过循环,但它们似乎只是重复显示一个实例。
【问题讨论】:
-
请考虑显示更多代码,以便我们查看逻辑并了解为什么它只显示一个实例。
-
@JerryHu 那里 :)
-
还有显示功能?
-
@JerryHu 一切都在那里。
标签: python html python-3.x web-scraping jupyter