dj1*_*121 1 python beautifulsoup web-scraping python-requests
我正在学习如何使用python进行webscrape,我想知道是否可以抓取两个页面,requests.get()以便我不必进行两个单独的调用和变量.例如:
r1 = requests.get("page1")
r2 = requests.get("page2")
pg1 = BeautifulSoup(r1.content, "html.parser")
pg2 = BeautifulSoup(r2.content, "html.parser")
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,重复的代码.有什么方法吗?谢谢!
我喜欢grequests库一次获取多个 URL,而不是requests。特别是在处理大量 URL 或具有许多子页面的单个 URL 时。
import grequests
urls = ['http://google.com', 'http://yahoo.com', 'http://bing.com']
unsent_request = (grequests.get(url) for url in urls)
results = grequests.map(unsent_request)
Run Code Online (Sandbox Code Playgroud)
在此之后,results可以根据需要进行处理。这适用于 JSON 数据:results[0]= 第一个 URL 数据,results[1]= 第二个 URL 数据等。
更多可以在这里找到
小智 5
您可以使用列表分配和理解,但只有两页不会更短.
pg1, pg2 = [ BeautifulSoup(requests.get(page).content, "html.parser")
for page in ["page1","page2"] ]
Run Code Online (Sandbox Code Playgroud)