python爬虫爬取网页链接
时间: 2023-12-22 16:27:55 浏览: 139
Python爬虫爬取网页信息
以下是使用Python爬虫爬取网页链接的示例代码:
```python
import requests
import re
import threading
# 定义一个获取页面源代码的函数
def get_html(url):
try:
response = requests.get(url)
if response.status_code == 200:
return response.text
return None
except Exception as e:
print(e)
return None
# 定义一个获取页面中所有链接的函数
def get_links(html):
pattern = re.compile('<a.*?href="(.*?)".*?>', re.S)
links = re.findall(pattern, html)
return links
# 定义一个爬取链接的函数
def crawler(url):
html = get_html(url)
if html:
links = get_links(html)
for link in links:
print(link)
# 定义一个多线程爬虫函数
def multi_thread_crawler(urls):
threads = []
for url in urls:
t = threading.Thread(target=crawler, args=(url,))
threads.append(t)
for t in threads:
t.start()
for t in threads:
t.join()
# 测试
if __name__ == '__main__':
urls = ['https://www.baidu.com', 'https://www.sina.com.cn', 'https://www.qq.com']
multi_thread_crawler(urls)
```
该示例代码中,我们使用requests库获取网页源代码,使用正则表达式获取页面中的所有链接,并使用多线程技术来提高爬虫的运行效率。我们定义了一个`get_html`函数来获取页面源代码,一个`get_links`函数来获取页面中的所有链接,一个`crawler`函数来爬取链接,最后定义了一个`multi_thread_crawler`函数来实现多线程爬虫。在测试中,我们传入了三个网址,程序会同时爬取这三个网址中的所有链接。
阅读全文