1 Star 0 Fork 4

xinjunlyu/stata_do

forked from songbl/stata_do 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
lianxh.do 2.39 KB
一键复制 编辑 原始数据 按行查看 历史
松柏林 提交于 2021-05-03 15:39 . update
clear // 避免变量与用户变量冲突
tempfile ///
lxh_BlogTitle ///
catID_dta ///
CatIDnew_data ///
catSort ///
Final_data ///
outcome ///
mycovs1 ///
*------------------------------------------------------------------------*
***正则表达式抽取网址 标题 分类标签等***
qui{
local URL "https://www.lianxh.cn/blogs.html"
tempfile html_text HTML_text_dta catID_dta
capture copy `"`URL'"' "`html_text'.txt", replace
local times = 0
while _rc ~= 0 {
local times = `times' + 1
sleep 1000
cap copy `"`URL'"' "`html_text'.txt", replace
if `times' > 10 {
disp as error "Internet speeds is too low to get the data"
exit 601
}
}
}
infix strL v 1-1000 using "`html_text'.txt", clear
save "`HTML_text_dta'", replace
keep in 1/1000
local date: disp %dCYND date("`c(current_date)'","DMY")
local month = substr("`date'",5,2)
local day = substr("`date'",7,2)
local key ="`month'"+"/"+"`day'"
keep if index(v[_n+4], "<span>04/28</span>")
*- 抽取原始链接
local regex = `"(?<="><a href=")(.*)(?=")"'
* 以 「"><a href="」开头,「"」结尾的字符串
gen BlogURL = ustrregexs(0) if ustrregexm(v, `"`regex'"')
replace BlogURL = "https://www.lianxh.cn" + BlogURL if BlogURL!=""
*- 抽取标题
local regex = `"(?<=html">)(.+)(?=</a></h3>)"'
gen BlogTitle = ustrregexs(0) if ustrregexm(v, `"`regex'"')
*- 抽取分类标签
local regex = `"(<span>)(\D.*)(?:</span>)"'
gen CatName = ustrregexs(2) if ustrregexm(v, `"`regex'"')
drop if ustrregexm(CatName, "(data\[item\])")
keep if (BlogURL !="" | CatName!="")
replace CatName = CatName[_n+1] if CatName==""
keep if BlogTitle !=""
drop v
drop if ustrregexm(BlogTitle, "(data\[item\])")
format BlogTitle %-60s
gen id = _n // 推文发表时间序号
save "`lxh_BlogTitle'", replace
rename BlogURL 链接
rename BlogTitle 名称
rename CatName 分类
gen 格式=链接+"++"+名称+"++"+分类+"++"+"连享会"+"++"+"专题"
keep 名称 链接 分类 格式
br
*dingwei 名称,c("☝ Stata Journal 来啦!随便看 ")
*local n=r(row_n)
*drop in 1/`n'
*list 名称 if strmatch(分类,"*专题*")
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
其他
1
https://gitee.com/xinjunlyu/stata_do.git
[email protected]:xinjunlyu/stata_do.git
xinjunlyu
stata_do
stata_do
master

搜索帮助