实例⼆》爬取论坛标题
爬取论坛中的标题
这部分的重点:
1、明确你要爬取⽹页的⽹址,使⽤⾕歌的检查功能,可以抓取页⾯的数据,但加载的内容有很多,图⽚,js⽂件都⾮常多,必须要在这⾥⾯到你想爬取的页⾯的⽹址。
2、⽤到了正则表达式,正则表达式不准确也是输出不了想要的结果,建议输出r.text后在正则表达式的⽹站上确认⾃⼰的表达式没有问题,再进⾏使⽤。
3、beautifulsoup知识点太多,单开⽂章汇总使⽤⽅法
# 使⽤正则表达式实现抓取⽹页的标题
import requests
import re
url = "bbs.tianya/m/list-funinfo-1.shtml"
headers = {
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Mobile Safari/537.36'
}
r = (url,headers)
html = r.text
)
title_list = re.findall('<div class=\Sp-title\S>(.*?)\n.*\n.+</div>',html)
print(title_list)
# 使⽤BeautifulSoup抓取标题
import requests
from bs4 import BeautifulSoup
url = "bbs.tianya/m/list-funinfo-1.shtml"
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Mobile Safari/537.36'
}
r = (url, headers)
soup = ,"lxml")
ul = soup.find_all("div",class_="p-title")
# 使⽤class做参数会导致语法错误,从Beautiful Soup的4.1.1版本开始,可以通过class_参数搜索有指定CSS类名的tag
for i in range(len(ul)):
title = ul[i].get_text()
print(title)
"""
使⽤lxml提取⽹页源代码有3种⽅法:
1、XPath选择器
在XML⽂档中查信息的语⾔
2、CSS选择器
3、BeautifulSoup的find()⽅法
"""
import requests
from lxml import etree
link = "bbs.tianya/m/list-funinfo-1.shtml"
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Mobile Safari/537.36'
}
最新论坛网站源码r = (link, headers)
html = etree.)
title_list = html.xpath('//div[@class="p-title"]/text()')
# 右键检查,定位标题,右键选择复制-复制xpath,快速得到xpath路径,缺点是⼀次输出⼀个值
title_list1 = html.xpath('//*[@id="bbs_list"]/div[4]/ul/li[1]/a/div[1]/text()')
print(title_list)
print(title_list1)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论