最近在自学Python爬虫,会自己练习一些网站然后记录下来供大家参考,如有不对之处希望大佬多多指正
此处以爬取携程网上带有“非遗”关键词的游记为例:
首先找到需要爬取的网站的url:https://you.ctrip/searchsite/travels/?query=%e9%9d%9e%e9%81%97&isAnswered=&isRecommended=&publishDate=&PageNo=1
可以发现不同页码转换时只改变最后的数字,这样我们爬取不同页面时就非常方便了
利用requests库和BeautifulSoup库对页面的html进行抓取
def getHTMLText(url):
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = 'utf-8'
return r.text
except:
return""
通过对页面html的观察我们发现标题内容存在<dt>标签下,于是进行遍历
for items in soup.select('dt'):
if items.a != None:
print(items.a.text, file=data)
再寻找每个标题下对应的具体内容的href
nxt = 'https://you.ctrip' + items.a['href']
html2 = getHTMLText(nxt)
同理可以爬取具体内容
完整代码已上传GitHub
ps:第一次发csdn可能写得不太好(doge)
更多推荐
Python网络爬虫爬取携程网中的游记标题及内容
发布评论