Compare commits
2 Commits
c6d39ee579
...
8c6b672d90
Author | SHA1 | Date | |
---|---|---|---|
8c6b672d90 | |||
e6be0ab494 |
@ -1,3 +1,8 @@
|
|||||||
# Requirements
|
# Requirements
|
||||||
|
|
||||||
`apt install python3-pydantic python3-httpx python3-bs4 python3-tqdm locales-all && sudo locale-gen`
|
`apt install python3-pydantic python3-httpx python3-bs4 python3-tqdm locales-all && sudo locale-gen`
|
||||||
|
|
||||||
|
# Windows build
|
||||||
|
1. install wine
|
||||||
|
2. create venv and `pip install .`
|
||||||
|
3. `wine pyinstaller --paths=venv/lib/python3.10/site-packages/ --collect-submodules=lxml --onefile scraperoog/scrape.py`
|
||||||
|
16
pyproject.toml
Normal file
16
pyproject.toml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[project]
|
||||||
|
name = "scraperoog"
|
||||||
|
version = "0.0.2"
|
||||||
|
dependencies = [
|
||||||
|
"tqdm",
|
||||||
|
"bs4",
|
||||||
|
"lxml",
|
||||||
|
"httpx",
|
||||||
|
"pydantic",
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.setuptools.packages]
|
||||||
|
find = {}
|
||||||
|
|
||||||
|
[project.scripts]
|
||||||
|
scraperoog = "scraperoog.scrape:main"
|
0
scraperoog/__init__.py
Normal file
0
scraperoog/__init__.py
Normal file
@ -81,7 +81,7 @@ def convert_to_datestring(day: str, month: str, year: str) -> datetime:
|
|||||||
|
|
||||||
async def request_data(index: int, client: AsyncClient) -> Optional[Entry]:
|
async def request_data(index: int, client: AsyncClient) -> Optional[Entry]:
|
||||||
response_data = await client.get(DATA_URL + str(index), timeout=20.0)
|
response_data = await client.get(DATA_URL + str(index), timeout=20.0)
|
||||||
if "Fehler aufgetreten" not in response_data.text:
|
if "Die Darstellung ist derzeit deaktiviert" not in response_data.text:
|
||||||
response_title = await client.get(MAIN_URL + str(index), timeout=20.0)
|
response_title = await client.get(MAIN_URL + str(index), timeout=20.0)
|
||||||
title_soup = BeautifulSoup(response_title.text, "lxml")
|
title_soup = BeautifulSoup(response_title.text, "lxml")
|
||||||
apartment = (
|
apartment = (
|
||||||
@ -127,10 +127,12 @@ async def extract_results() -> None:
|
|||||||
file.write(result.json())
|
file.write(result.json())
|
||||||
generate_csv(result)
|
generate_csv(result)
|
||||||
|
|
||||||
|
def main() -> None:
|
||||||
|
if platform.system() == "Windows":
|
||||||
|
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
||||||
|
asyncio.run(extract_results())
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# with open("results.json", "r") as file:
|
# with open("results.json", "r") as file:
|
||||||
# result = Result(**json.load(file))
|
# result = Result(**json.load(file))
|
||||||
if platform.system() == "Windows":
|
main()
|
||||||
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
|
||||||
asyncio.run(extract_results())
|
|
Loading…
x
Reference in New Issue
Block a user