使用python 多线程爬取 https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999 网站 9999页 使用10个线程
时间: 2023-12-23 16:05:28 浏览: 131
好的,你可以按照如下代码使用10个线程来爬取9999页:
```python
import requests
from bs4 import BeautifulSoup
import threading
def get_page(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
posts = soup.find_all('tr', class_='list1')
for post in posts:
title = post.find('td', class_='list_vspace').find('a', class_='list_title').text.strip()
print(title)
def main():
urls = ['https://www.ppomppu.co.kr/zboard/zboard.php?id=freeboard&hotlist_flag=999&page={}'.format(i) for i in range(1, 10000)]
threads = []
for i in range(10):
start = i * 1000
end = (i + 1) * 1000
t = threading.Thread(target=get_page, args=(urls[start:end],))
threads.append(t)
t.start()
for t in threads:
t.join()
if __name__ == '__main__':
main()
```
这个程序将9999个页面分成了10个区间,每个区间包含1000个页面。然后,程序创建10个线程,每个线程负责爬取一个区间中的所有页面。这样可以充分利用CPU资源,提高爬取效率。
需要注意的是,这样的分配方式可能导致最后一个线程处理的页面数量不足1000个。但是在本例中,这个问题不会影响程序的正确性和性能。如果你要爬取的页面数量不是整数倍,可以根据具体情况进行调整。
阅读全文