Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
I';我无法使用Python';这汤真美_Python_Beautifulsoup_Python Requests - Fatal编程技术网

I';我无法使用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

我的目标是编写一个Python脚本,它可以从网站检索特定数据

具体而言,我必须提取这些数据:

<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})