あなただけの負荷にもっとボタンのクリックをシミュレートするためにgroup_no
をインクリメント特に、いくつかのデータをポストする必要がありますすることができます、最後まで行くには
from bs4 import BeautifulSoup
import requests
# you can set whatever here to influence the results
data = {"group_no": "1",
"search": "category",
"segment": "",
"activity": "",
"retail": "",
"category": "",
"Bpark": "",
"alpha": ""}
post = "http://www.tecomdirectory.com/getautocomplete_keyword.php"
with requests.Session() as s:
soup = BeautifulSoup(
s.get("http://www.tecomdirectory.com/companies.php?segment=&activity=&search=category&submit=Search").content,
"html.parser")
print([a["href"] for a in soup.select("a[href^=mailto:]")])
for i in range(1, 5):
data["group_no"] = str(i)
soup = BeautifulSoup(s.post(post, data=data).content, "html.parser")
print([a["href"] for a in soup.select("a[href^=mailto:]")])
ループポストを返さないのhtmlまで、私達はちょうどZさんを反復する"alpha": "Z"
の設定の下のような機能を実行したのであれば
def yield_all_mails():
data = {"group_no": "1",
"search": "category",
"segment": "",
"activity": "",
"retail": "",
"category": "",
"Bpark": "",
"alpha": ""}
post = "http://www.tecomdirectory.com/getautocomplete_keyword.php"
start = "http://www.tecomdirectory.com/companies.php?segment=&activity=&search=category&submit=Search"
with requests.Session() as s:
resp = s.get(start)
soup = BeautifulSoup(s.get(start).content, "html.parser")
yield (a["href"] for a in soup.select("a[href^=mailto:]"))
i = 1
while resp.content.strip():
data["group_no"] = str(i)
resp = s.post(post, data=data)
soup = BeautifulSoup(resp.content, "html.parser")
yield (a["href"] for a in soup.select("a[href^=mailto:]"))
i += 1
:それは私たちが、それ以上のページをロードすることはできません意味
from itertools import chain
for mail in chain.from_iterable(yield_all_mails()):
print(mail)
私たちはなるだろう:あなたは、サーバーをハンマーと自分がブロックされ得ることはありませんので、
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
Process finished with exit code 0
あなたが要求間で睡眠を置く必要があります。
"load more"が少なくともいくつかのjavascriptを使用して動的に読み込まれた後、ページのすべてを推測しています。 Beautifulsoupはjavascriptを実行しないので、動的に読み込まれたコンテンツを読むことはできません。 – Kevin
こんにちはKevin!返信いただきありがとうございます。この問題を回避する方法を教えてもらえますか、それともPythonにモジュールがあれば教えてください。ありがとう – PIMg021
これは役に立ちそうです:[PythonでWebページをスクラップするJavaScript](0120-18753) – Kevin