这可能很难解释,所以请听我说,我已经创建了一个网络抓取工具,可以抓取特定站点的信息,代码如下所示 -
import requests
from bs4 import BeautifulSoup
import pandas as pd
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36'}
questionlist = []
def getQuestions(tag, page):
url = f'https://www.merinfo.se/search?d=c&ap=1&emp=0%3A20&rev=0%3A100&who={tag}&bf=1&page={page}'
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')
questions = soup.find_all('div', {'class': 'box-white p-0 mb-4'})
for item in questions:
question = {
'tag': tag,
'title': item.find('a', {'class': 'link-primary'}).text,
'link': item.find('a', {'class': 'link-primary'})['href'],
'nummer': item.find('a', {'class': 'link-body'})['href'],
'address': item.find('address', {'class': 'mt-2 mb-0'}).text,
'RegÅr': item.find('div', {'class': 'col text-center'}).text,
}
questionlist.append(question)
return
for x in range(1,6):
getQuestions('bygg', x)
#getQuestions('advokat', x)
df = pd.DataFrame(questionlist)
df.to_excel('merinfo skrapare för bygg.xlsx')
print('LBC Marketing TM')
我想做的是创建一个可以改变这部分的简单应用程序
for x in range(1,6):
getQuestions('bygg', x)
#getQuestions('advokat', x)
主要是 ('bygg') 和 range (1,6) 部分。它不必很漂亮,而只是一些有用的东西,以及我将来可以做得漂亮的东西。我不是要一个完整的教程(虽然那会很好),但只是一些正确方向的指示,所以我知道要搜索什么,因为我对这一切都很陌生。
干杯!
只需使用一个函数并将要更改的部分作为参数传递即可。不需要为此“自我修改”甚至生成代码:
def get_results(field, start, stop):
results = []
for x in range(start, stop):
results.append(getQuestions(field, x))
return results
get_results('bygg', 1, 6)
get_results('advokat', 1, 10)
传递给的值get_results
可以来自 CSV 文件或任何其他地方 - 只需对其进行编码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句