最近在自学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网络爬虫爬取携程网中的游记标题及内容