简易、强大的推特(Twitter)采集程序,支持元搜索,用户,粉丝,关注,发文,回复,评论等采集
Project description
easy_twitter_crawler
推特(Twitter)采集程序,支持用户,发文,评论采集,希望能为使用者带来益处。如果您也想贡献好的代码片段,请将代码以及描述,通过邮箱( xinkonghan@gmail.com )发送给我。代码格式是遵循自我主观,如存在不足敬请指出!
推特三件套(有需要可自行安装)
easy_twitter_publisher
推特发帖,回帖,转载 https://pypi.org/project/easy-twitter-publishereasy_twitter_crawler
推特采集 https://pypi.org/project/easy-twitter-crawlereasy_twitter_interactors
推特互动(点赞,刷阅读量等) https://pypi.org/project/easy-twitter-interactors
安装
pip install easy-twitter-crawler
主要功能
search_crawler
关键词搜索采集(支持热门,用户,最新,视频,照片;支持条件过滤)user_crawler
用户采集(支持用户信息,用户粉丝和关注,用户发文,用户回复)common_crawler
通用采集(支持发文,评论)
简单使用
设置代理及cookie (关键词,用户发文,用户回复,评论需要设置cookie)
proxy = {
'http': 'http://127.0.0.1:10808',
'https': 'http://127.0.0.1:10808'
}
cookie = 'auth_token=686fa28f49400698820d0a3c344c51efdeeaf73a; ct0=5bed99b7faad9dcc742eda564ddbcf37888f8794abd6d4d736919234440be2172da1e9a9fc48bb068db1951d1748ba5467db2bc3e768f122794265da0a9fa6135b4ef40763e7fd91f730d0bb1298136b'
关键词采集使用案例(对关键词指定条件采集10条数据)
from easy_spider_tool import cookie_to_dic, format_json
from easy_twitter_crawler import set_proxy, set_cookie, search_crawler, TwitterFilter
key_word = 'elonmusk'
twitter_filter = TwitterFilter(key_word)
twitter_filter.word_category(lang='en')
twitter_filter.account_category(filter_from='', to='', at='')
twitter_filter.filter_category(only_replies=None, only_links=None, exclude_replies=None, exclude_links=None)
twitter_filter.interact_category(min_replies='', min_faves='', min_retweets='')
twitter_filter.date_category(since='', until='')
key_word = twitter_filter.filter_join()
set_proxy(proxy)
set_cookie(cookie_to_dic(cookie))
for info in search_crawler(
key_word,
data_type='Top',
count=10,
):
set_proxy(proxy)
set_cookie(cookie_to_dic(cookie))
print(format_json(info))
关键词采集参数说明
字段名 | 类型 | 必须 | 描述 |
---|---|---|---|
key_word | string | 是 | 关键词 |
data_type | string | 否 | 指定采集的板块,大小写均可(热门:Top 用户:People 最新:Latest 视频:Videos 照片:Photos) |
count | int | 否 | 采集的数量(默认不采集:-1,采集全部:0,采集指定的数量:>0) |
关键词过滤参数说明(对标推特搜索功能,同一参数多个值间用空格隔开)
所属类别 | 字段名 | 类型 | 必须 | 描述 |
---|---|---|---|---|
word_category | exact | string | 否 | 精确短语 |
word_category | filter_any | string | 否 | 任何一词(支持多个) |
word_category | exclude | string | 否 | 排除这些词语 (支持多个) 示例:dog cat |
word_category | tab | string | 否 | 这些话题标签(支持多个) |
word_category | lang | string | 否 | 语言(文档后附语言可选范围) |
account_category | filter_from | string | 否 | 来自这些账号(支持多个) |
account_category | to | string | 否 | 发给这些账号(支持多个) |
account_category | at | string | 否 | 提及这些账号(支持多个) |
filter_category | only_replies | bool | 否 | 仅回复 |
filter_category | only_links | bool | 否 | 仅链接 |
filter_category | exclude_replies | bool | 否 | 排除回复 |
filter_category | exclude_links | bool | 否 | 排除链接 |
interact_category | min_replies | int | 否 | 最少回复次数 |
interact_category | min_faves | int | 否 | 最少喜欢次数 |
interact_category | min_retweets | int | 否 | 最少转推次数 |
date_category | since | string | 否 | 开始日期('2023-07-20') |
date_category | until | string | 否 | 结束日期('2023-08-20') |
用户信息采集使用案例(采集该用户信息及10条文章,10条回复,10个粉丝信息,10个关注信息)
from easy_spider_tool import cookie_to_dic, format_json
from easy_twitter_crawler import set_proxy, set_cookie, user_crawler
set_proxy(proxy)
set_cookie(cookie_to_dic(cookie))
for info in user_crawler(
'elonmusk',
article_count=10,
reply_count=10,
following_count=10,
followers_count=10,
# start_time='2023-07-20 00:00:00',
# end_time='2023-07-27 00:00:00',
):
set_proxy(proxy)
set_cookie(cookie_to_dic(cookie))
print(format_json(info))
print(f"文章数:{len(info.get('article', []))}")
print(f"粉丝数:{len(info.get('followers', []))}")
print(f"关注数:{len(info.get('following', []))}")
print(f"回复数:{len(info.get('reply', []))}")
用户信息采集参数说明
字段名 | 类型 | 必须 | 描述 |
---|---|---|---|
user_id | string | 是 | 用户名(https://twitter.com/elonmusk 中的 elonmusk) |
article_count | int | 否 | 采集文章数(默认不采集:-1,采集全部:0,采集指定的数量:>0) |
reply_count | int | 否 | 采集回复数 (默认不采集:-1,采集全部:0,采集指定的数量:>0) |
following_count | int | 否 | 采集关注数 (默认不采集:-1,采集全部:0,采集指定的数量:>0) |
followers_count | int | 否 | 采集粉丝数 (默认不采集:-1,采集全部:0,采集指定的数量:>0) |
start_time | string | 否 | 数据截取开始时间 (仅当采集文章或回复时有效) |
end_time | string | 否 | 数据截取结束时间(仅当采集文章或回复时有效) |
通用采集使用案例(已知文章id,采集此文章信息)
from easy_spider_tool import cookie_to_dic, format_json
from easy_twitter_crawler import set_proxy, set_cookie, common_crawler
set_proxy(proxy)
set_cookie(cookie_to_dic(cookie))
for info in common_crawler(
'1684447438864785409',
data_type='article',
):
set_proxy(proxy)
set_cookie(cookie_to_dic(cookie))
print(format_json(info))
通用采集使用案例(已知文章id,采集此文章下10条评论)
from easy_spider_tool import cookie_to_dic, format_json
from easy_twitter_crawler import set_proxy, set_cookie, common_crawler
set_proxy(proxy)
set_cookie(cookie_to_dic(cookie))
for info in common_crawler(
'1684447438864785409',
data_type='comment',
comment_count=10,
):
set_proxy(proxy)
set_cookie(cookie_to_dic(cookie))
print(format_json(info))
通用采集参数说明
字段名 | 类型 | 必须 | 描述 |
---|---|---|---|
task_id | string | 是 | 文章id(https://twitter.com/elonmusk/status/1690164670441586688 中的 1690164670441586688) |
data_type | string | 是 | 采集类型(文章:article 评论:comment) |
comment_count | int | 否 | 采集评论数量(仅当data_type为comment时有效;默认不采集:-1,采集全部:0,采集指定的数量:>0) |
语言表
语言代码 | 语言名称 | 英文名 |
---|---|---|
aa | 阿法尔语 | Afar |
ab | 阿布哈兹语 | Abkhaz language |
ae | 阿维斯陀语 | Avestan language |
af | 南非语 | Afrikaans |
ak | 阿坎语 | Arkan language |
am | 阿姆哈拉语 | Amharic |
an | 阿拉贡语 | Aragonese |
ar | 阿拉伯语 | Arabic |
as | 阿萨姆语 | Assam |
av | 阿瓦尔语 | Avar language |
ay | 艾马拉语 | Aymara |
az | 阿塞拜疆语 | Azerbaijani |
ba | 巴什基尔语 | Bashkir |
be | 白俄罗斯语 | Belarusian |
bg | 保加利亚语 | Bulgarian |
bh | 比哈尔语 | Bihar |
bi | 比斯拉马语 | Bislama |
bm | 班巴拉语 | Bambara |
bn | 孟加拉语 | Bengali |
bo | 藏语 | Tibetan language |
br | 布列塔尼语 | Breton |
bs | 波斯尼亚语 | Bosnian |
ca | 加泰隆语 | Catalan |
ce | 车臣语 | Chechen |
ch | 查莫罗语 | Chamorro |
co | 科西嘉语 | Corsican language |
cr | 克里语 | Kerry |
cs | 捷克语 | Czech |
cu | 古教会斯拉夫语 | Ancient Church Slavic |
cv | 楚瓦什语 | Chuvash language |
cy | 威尔士语 | Welsh |
da | 丹麦语 | Danish |
de | 德语 | German |
dv | 迪维希语 | Dhivehi language |
dz | 不丹语 | Bhutanese |
ee | 埃维语 | Ewe language |
el | 现代希腊语 | Modern Greek |
en | 英语 | English |
eo | 世界语 | Esperanto |
es | 西班牙语 | Spanish |
et | 爱沙尼亚语 | Estonian |
eu | 巴斯克语 | Basque |
fa | 波斯语 | Persian |
ff | 富拉语 | Fulah language |
fi | 芬兰语 | Finnish |
fj | 斐济语 | Fijian |
fo | 法罗语 | Faroese |
fr | 法语 | French |
fy | 弗里西亚语 | Frisian |
ga | 爱尔兰语 | Irish |
gd | 苏格兰盖尔语 | Scottish Gaelic |
gl | 加利西亚语 | Galician |
gn | 瓜拉尼语 | Guarani |
gu | 古吉拉特语 | Gujarati |
gv | 马恩岛语 | Manx language |
ha | 豪萨语 | Hausa |
he | 希伯来语 | Hebrew |
hi | 印地语 | Hindi |
ho | 希里莫图语 | Greek language |
hr | 克罗地亚语 | Croatian |
ht | 海地克里奥尔语 | Haitian Creole |
hu | 匈牙利语 | Hungarian |
hy | 亚美尼亚语 | Armenian |
hz | 赫雷罗语 | Herero |
ia | 国际语 A | Interlingua |
id | 印尼语 | Indonesian |
ie | 国际语 E | Interlingua E |
ig | 伊博语 | Ibo language |
ii | 四川彝语(诺苏语) | Sichuan Yi (Nuosu) |
ik | 依努庇克语 | According to Nupian language |
io | 伊多语 | Ido language |
is | 冰岛语 | Icelandic |
it | 意大利语 | Italian |
iu | 因纽特语 | Inuit language |
ja | 日语 | Japanese |
jv | 爪哇语 | Javanese |
ka | 格鲁吉亚语 | Georgian |
kg | 刚果语 | Congo |
ki | 基库尤语 | Kikuyu |
kj | 宽亚玛语 | Aum wide language |
kk | 哈萨克语 | Kazakh |
kl | 格陵兰语 | Greenlandic |
km | 高棉语 | Cambodian |
kn | 卡纳达语 | Kannada |
ko | 朝鲜语、韩语 | Korean, Korean |
kr | 卡努里语 | Canouli |
ks | 克什米尔语 | Kashmir |
ku | 库尔德语 | Kurdish |
kv | 科米语 | Komi |
kw | 康沃尔语 | Cornish |
ky | 吉尔吉斯语 | Kyrgyz language |
la | 拉丁语 | Latin |
lb | 卢森堡语 | Luxembourgish |
lg | 卢干达语 | Lugan da language |
li | 林堡语 | Limburg |
ln | 林加拉语 | Lingala |
lo | 老挝语 | Lao |
lt | 立陶宛语 | Lithuanian |
lu | 卢巴语 | Luba |
lv | 拉脱维亚语 | Latvian |
mg | 马达加斯加语 | Madagascar |
mh | 马绍尔语 | Marshall language |
mi | 毛利语 | Maori language |
mk | 马其顿语 | Macedonian |
ml | 马拉亚拉姆语 | Malayalam |
mn | 蒙古语 | Mongolian |
mo | 摩尔达维亚语 | Moldavian |
mr | 马拉提语 | Marathi |
ms | 马来语 | Malay |
mt | 马耳他语 | Maltese |
my | 缅甸语 | Burmese |
na | 瑙鲁语 | Nauru language |
nb | 书面挪威语 | Written Norwegian |
nd | 北恩德贝勒语 | North Ndebele |
ne | 尼泊尔语 | Nepali language |
ng | 恩敦加语 | Ennastatic |
nl | 荷兰语 | Dutch |
nn | 新挪威语 | New Norwegian |
no | 挪威语 | Norwegian |
nr | 南恩德贝勒语 | South End Baylor |
nv | 纳瓦霍语 | Navajo |
ny | 尼扬贾语 | Nyanja |
oc | 奥克语 | Och |
oj | 奥吉布瓦语 | Ojibwa |
om | 奥洛莫语 | Olomouc |
or | 奥利亚语 | Oriya |
os | 奥塞梯语 | Ossetian language |
pa | 旁遮普语 | Punjabi |
pi | 巴利语 | Pali |
pl | 波兰语 | Polish |
ps | 普什图语 | Pashto |
pt | 葡萄牙语 | Portuguese |
qu | 凯楚亚语 | Kai Chu Asian |
rm | 罗曼什语 | Romansh language |
rn | 基隆迪语 | Kirundi |
ro | 罗马尼亚语 | Romanian |
ru | 俄语 | Russian |
rw | 卢旺达语 | Rwanda |
sa | 梵语 | Sanskrit |
sc | 萨丁尼亚语 | Sardinian |
sd | 信德语 | Sindhi language |
se | 北萨米语 | Northern Sami |
sg | 桑戈语 | Sango language |
sh | 塞尔维亚-克罗地亚语 | Serbian - Croatian |
si | 僧加罗语 | Sinhala |
sk | 斯洛伐克语 | Slovak |
sl | 斯洛文尼亚语 | Slovenian |
sm | 萨摩亚语 | Samoan |
sn | 绍纳语 | Shona language |
so | 索马里语 | Somali |
sq | 阿尔巴尼亚语 | Albanian |
sr | 塞尔维亚语 | Serbian |
ss | 斯瓦特语 | Swat |
st | 南索托语 | South Sotho |
su | 巽他语 | He language |
sv | 瑞典语 | Swedish |
sw | 斯瓦希里语 | Swahili |
ta | 泰米尔语 | Tamil |
te | 泰卢固语 | Telugu |
tg | 塔吉克斯坦语 | Tajikistan |
th | 泰语 | Thai |
ti | 提格里尼亚语 | Tigrinya |
tk | 土库曼语 | Turkmen |
tl | 他加禄语 | Tagalog |
tn | 塞茨瓦纳语 | Sethwana |
to | 汤加语 | Tongan |
tr | 土耳其语 | Turkish |
ts | 宗加语 | Zong dialect |
tt | 塔塔尔语 | Tatar |
tw | 特威语 | Twain language |
ty | 塔希提语 | Tahitian |
ug | 维吾尔语 | Uyghur |
uk | 乌克兰语 | Ukrainian |
ur | 乌尔都语 | Urdu |
uz | 乌兹别克语 | Uzbek |
ve | 文达语 | Vinda |
vi | 越南语 | Vietnamese |
vo | 沃拉普克语 | Volapuk |
wa | 沃伦语 | Warren |
wo | 沃洛夫语 | Wolof |
xh | 科萨语 | Xhosa |
yi | 依地语 | Yiddish |
yo | 约鲁巴语 | Yoruba |
za | 壮语 | Zhuang |
zh | 中文(汉语) | Chinese |
zu | 祖鲁语 | Zulu |
链接
Github:https://github.com/hanxinkong/easy-twitter-crawler
在线文档:https://easy-twitter-crawler.xink.top
贡献者
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file easy_twitter_crawler-1.0.4.tar.gz
.
File metadata
- Download URL: easy_twitter_crawler-1.0.4.tar.gz
- Upload date:
- Size: 31.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69329679b6dd1542f4a56e05366f94cfa186bef1dd391bdcdd83719fab1abab1 |
|
MD5 | b44600625fba3612a16f3d965ad5d64f |
|
BLAKE2b-256 | 06ec8c4323512cb14f61ef98ef3100126bb0ae2d2eb12b1b48a098cb8c373efe |
File details
Details for the file easy_twitter_crawler-1.0.4-py3-none-any.whl
.
File metadata
- Download URL: easy_twitter_crawler-1.0.4-py3-none-any.whl
- Upload date:
- Size: 30.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7408761fb754261ccedd3a1a82ca0d67716f3929cc7fd99d7198b4f8e819ce3c |
|
MD5 | b9b8923544210d70602ea3ec4f81e631 |
|
BLAKE2b-256 | 9bbcdfd2c7522395c75578d33075a9772f04f011a34117b727a97e1a6e4cd2f0 |