抓取后在字符串中搜索单词



所以我的问题是,我不是真正进入编程,我唯一做的事情是做网站和销售他们。

我学了一点python,但不多,这就是我的问题所在。我开始学习一门语言是因为我想在它有用的时候学习它……就像我之前说的,我是卖网站的,在我的国家有一个网站,几乎所有的公司都在上面。我想要一个刮刀查找网站上所有的Number。

目前它只适用于第一个数字,但每一个在每一页只列出十个,这是我的代码:

from requests import get

def开始():

keyword = input("Suchbegriff: ")
URL = "https://www.herold.at/gelbe-seiten/" + keyword + "/"
print("Targing... : " + URL)
data = get(URL)
print(data.text[:100000000000000000000000])

tel = data.text.find('"tel:')
print(tel)
print(data.text[tel:tel + 19])

开始()

目前,如果我输入一个分支机构的小众名称,比如"我只得到第一个数字作为输出:

, 39820"电话:+ 4315124367,t"

我怎样才能使爬虫继续获取另外9个呢?

已经谢谢你的回答了!

要获得数字,您可以使用内置模块re(它代表正则表达式的regex简写)。参数flags=re.M表示多行,因此它将模式应用于整个字符串,而不只是到行尾。

import re
import requests
url = # see above
response = request.get(url)
tel_nrs = re.search(r'(+d+)', response.text, flags=re.M)
print(tel_nrs.groups())

输出
+4315124367
...
评论>:如果你使用bs4,你将不得不面对这个问题,bs4是有用的导航页面

bs4一起可以是

from bs4 import BeautifulSoup
import re
import requests
url = # see above
response = request.get(url)
# make the response a "navigable" object
soup = BeautifulSoup(response.text, 'lxml')
# regex pattern for the tel nr
n_teL_pattern = re.compile(r'(+d+)')
# look for all string in the soup which satisfy the pattern
for s in soup.find_all(string=n_teL_pattern):
print(n_teL_pattern.search(s).group())   # print the match

最新更新