I';我无法使用Python';这汤真美
我的目标是编写一个Python脚本,它可以从网站检索特定数据 具体而言,我必须提取这些数据:I';我无法使用Python';这汤真美,python,beautifulsoup,python-requests,Python,Beautifulsoup,Python Requests,我的目标是编写一个Python脚本,它可以从网站检索特定数据 具体而言,我必须提取这些数据: <span class="street-address" itemprop="streetAddress">191, Corso Peschiera</span> 如何解决此问题?您可以使用的attrs字段指定您感兴趣的类,如下所示: #!/usr/bin/env python from bs4 import BeautifulSoup import requests d
<span class="street-address" itemprop="streetAddress">191, Corso Peschiera</span>
如何解决此问题?您可以使用的attrs
字段指定您感兴趣的类,如下所示:
#!/usr/bin/env python
from bs4 import BeautifulSoup
import requests
data = requests.get('your url here').text
soup = BeautifulSoup(data,"html.parser")
for i,j in zip(soup.find_all('span', attrs={'class':'street-address'}), soup.find_all('div', attrs={'class':'tel elementPhone'})):
print i.text, j.text
这应该管用 下面是运行正常的代码。只有一些恼人的格式问题
from bs4 import BeautifulSoup
import requests
import csv
r = requests.get('https://www.paginegialle.it/ricerca/pizzerie/Milano?
mr=50')
data = r.text
soup = BeautifulSoup(data,"html.parser")
with open('mbsprprova.csv', 'w') as csvfile:
fieldnames = ['nome', 'indirizzo', 'telefono']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
for i,j,z in zip(soup.find_all('span', attrs={'class':'street-address'}), soup.find_all('div', attrs={'class':'telelementPhone'}), soup.find_all('span', attrs={'itemprop':'name'})):
writer.writeheader()
writer.writerow({'nome': z.text, 'telefono': j.text, 'indirizzo': i.text})
你在哪里读到过《汤》这本书。找到所有(“”)都有用吗?你看过这个电话的返回值了吗?您看过文档了吗?请先阅读文档:。
find_all()
的第一个位置参数是标记名,而不是某个html片段。要根据属性进行筛选,您需要传入合适的关键字参数,或者一个dict作为attrs
arg.@Tomalak通过文档,我能够构建一个脚本,它可以找到所有的'div'或'a',但不能找到我在回答中所说的更复杂的表达式。您还没有阅读文档。嗨@coder!我需要帮助!这是bs4 import BeautifulSoup>>>>导入请求>>>>>>数据=请求的输出.get('>>>soup=BeautifulSoup(data,“html.parser”)>>>>>>对于zip中的i,j(soup.find_all('span',attrs='street-address')),soup.find_all('div',attrs={'class':'tel elementPhone')):…print(i.text,j.text)…回溯(最后一次调用):文件“”,第2行,在TypeError中:“NoneType”对象是不可调用的。我运行您的代码并且没有遇到任何问题。问题是,在python中使用请求模块时,您决不能从url中忽略http部分。因此,通过将数据定义为:数据=请求.get('https://www.paginegialle.it/ricerca/lidi%20balneari/Roma%20(RM)?%27')。text
您不应该有任何问题!
#!/usr/bin/env python
from bs4 import BeautifulSoup
import requests
data = requests.get('your url here').text
soup = BeautifulSoup(data,"html.parser")
for i,j in zip(soup.find_all('span', attrs={'class':'street-address'}), soup.find_all('div', attrs={'class':'tel elementPhone'})):
print i.text, j.text
from bs4 import BeautifulSoup
import requests
import csv
r = requests.get('https://www.paginegialle.it/ricerca/pizzerie/Milano?
mr=50')
data = r.text
soup = BeautifulSoup(data,"html.parser")
with open('mbsprprova.csv', 'w') as csvfile:
fieldnames = ['nome', 'indirizzo', 'telefono']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
for i,j,z in zip(soup.find_all('span', attrs={'class':'street-address'}), soup.find_all('div', attrs={'class':'telelementPhone'}), soup.find_all('span', attrs={'itemprop':'name'})):
writer.writeheader()
writer.writerow({'nome': z.text, 'telefono': j.text, 'indirizzo': i.text})