python采集wordpress整站代码

作者 : 逆流成河 本文共934个字,预计阅读时间需要3分钟 发布时间: 2021-09-10 共260人阅读

import re
import bs4
import urllib.request

url_home = ‘http://www.5bug.wang/’ #要采集的网站
url_pattern = url_home + ‘([\s\S]*)\.html’ #正则表达式匹配文章页面,此处需完善为更好的写法
url_set = set()
url_cache = set()
url_count = 0
url_maxCount = 1000 #最大采集数量

#采集匹配文章内容的href标签
def spiderURL(url, pattern):
html = urllib.request.urlopen(url).read().decode(‘utf8’)
soup = bs4.BeautifulSoup(html, ‘html.parser’)
links = soup.find_all(‘a’, href = re.compile(pattern))
for link in links:
if link[‘href’] not in url_cache:
url_set.add(link[‘href’])
return soup

#采集的过程 异常处理还需要完善,对于一些加了防采集的站,还需要处理header的,下次我们再学习
spiderURL(url_home, url_pattern)

while len(url_set) != 0:
try:
url = url_set.pop()
url_cache.add(url)
soup = spiderURL(url, url_pattern)
page = soup.find(‘div’, {‘class’:’content’})

title = page.find(‘h1’).get_text()
autor = page.find(‘h4’).get_text()
content = page.find(‘article’).get_text()

print(title, autor, url)
except Exception as e:
print(url, e)
continue
else:
url_count += 1
finally:
if url_count == url_maxCount:
break

print(‘一共采集了: ‘ + str(url_count) + ‘ 条数据’)

本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。邮箱:1103606138#qq.com

站点地图
开通SVIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡